我正在开发一个 bash 脚本。我需要获取命令的输出并将其存储在变量中,并且我需要知道该命令是否成功。
我的意图是这样做(伪代码):
var = $(myCommand)
if($? = 0){
doThings
}else{
doOtherThings
}
问题是$?
保留执行结果var = $()
,而不是myCommand
。
检查输出并myCommand
不能证明执行成功。
答案1
答案2
假设您的命令是date +%d-%m-%Y
,它会打印当前日期。
Usage : ./script.sh
cat script.sh
#!/bin/bash
command="date +%d-%m-%Y"
read var < <($command)
if [ $? -eq 0 ]; then
echo "success"
else
echo "fail"
var="$command"
fi
echo $var
答案3
您需要一个变量来保存您的变量,$?
在分配变量之前您需要输入这个变量,last_status=$(echo $?)
之后您可以通过输入来调用 $?$last_status 而不是 $?
像那样;
echo $RANDOM
abc=$?
newVar=$(cat foo)
echo $abc