我在分支 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