这有什么不对? (比较退出代码)

时间:2016-12-09 21:59:37

标签: linux bash

我想将程序的退出代码与参数进行比较。这就是我正在做的事情:

CODE=$1
if [[ $(./program) -eq $CODE ]]; then
    echo "same"
else
    echo "different"
fi

$1得到"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