我有一个简单的bash函数,它返回3个数值: 0,1,2当测试返回值时,我根据函数返回的值得到正确的值。# echo $?-> 0,1,2
但是,当使用if-else语句时,返回值并不像我预期的那样计算。例如,当函数在if-else语句中返回值=2时,选择elif $?-eq 1;then
if [ "$?" -eq "0" ]; then
echo "0"
elif [ "$?" -eq "1" ]; then
echo "1"
elif [ "$?" -eq "2" ]; then
echo "2"
else
echo "Incorrect"
fi
结果:输出为:1我期望:输出为:2
任何想法。干杯,罗兰
发布于 2019-04-08 04:50:46
通过运行[ "$?" -eq "0" ]
,您可以更改$?
的值。如果您想多次比较它,可以将它的值存储到一个非魔术变量中,然后进行比较。
另一种选择是使用case
case $? in
(0) echo 0 ;;
(1) echo 1 ;;
(2) echo 2 ;;
(*) echo Incorrect
esac
https://stackoverflow.com/questions/55563519
复制相似问题