在我的壳里:
if ! mycommand;then
echo "mycommand has 0 exit code"
else
echo "mycommand has non-zero exit code"
fi
为什么MyRead返回1,但是回音“MyRead有0个退出代码”?
我更改了代码如下:
mycommand
ret=$?
if [ $ret -eq 0 ]; then
echo "mycommand has 0 exit code"
else
echo "mycommand has non-zero exit code"
fi
当返回1时,“i”具有非零退出代码。
最佳答案
只有当测试条件返回0(表示成功)时,才会执行if
-块。非零值将被视为错误,并执行else
-块。
if something; then
echo "Command succeeded (exit code 0)"
else
echo "Command failed (exit code $?)"
fi
因此,删除第一个代码块中的
!
,您将获得所需的行为。进一步阅读:Bash Guide for Beginners: Conditional statements
关于linux - 如果条件测试的行为不符合预期,为什么 shell 程序逻辑不存在,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40650457/