我想将程序的退出代码与参数进行比较。这就是我正在做的事情:
CODE=$1
if [[ $(./program) -eq $CODE ]]; then
echo "same"
else
echo "different"
fi
$1
得到"1"
的位置。但是我收到了一个错误。这有什么不对?
答案 0 :(得分:5)
您没有比较退出代码;您正在将该计划的标准输出与$CODE
进行比较。
也许:
CODE="$1"
./program
rc=$?
if [[ "$rc" -eq "$CODE" ]]
then echo "same"
else echo "different"
fi
您可以在条件中使用$?
,但您可能希望它用于报告和验证:
CODE="$1"
./program
rc=$?
if [[ "$rc" -eq "$CODE" ]]
then echo "same ($rc and $CODE)"
else echo "different (got $rc, wanted $CODE)"
fi