-eq 目的是什么

-eq 目的是什么

我在分支 bash 代码中使用 -eq,但效果不佳,-eq 在 java 中是否具有相同的作用 ==,因为我以相同的方式使用它

. confirm.sh
confirm
if [ $? -eq 0 ]
then
        echo “Jawaban YES OK” 
elif [ $? -eq 1 ]
then
        echo “Jawaban NO” 
elif [ $? -eq 2 ]
then
        echo “Jawaban CONTINUE
fi

输出

当 $? = 2 时应该继续,但为什么仍然没有

答案1

test在类似或[的比较中[[-eq是算术表达式的等于运算符。

如果比较成立,则测试返回 0。

查看Linux 文档计划


您的代码不起作用,因为它$?引用了最后的退出状态。您必须先保存它,然后才能进一步处理它:

confirm
ret=$?
if [ $ret -eq 0 ]
then
    echo "Jawaban YES OK"
elif [ $ret -eq 1 ]
then
    echo "Jawaban NO"
elif [ $ret -eq 2 ]
then
    echo "Jawaban CONTINUE"
fi

您也可以case在这里使用:

confirm
ret=$?
case $ret in
  0) echo "Jawaban YES OK" ;;
  1) echo "Jawaban NO" ;;
  2) echo "Jawaban CONTINUE" ;;
esac

相关内容