我有一个变量叫做choice
。现在,我尝试使用 if 来比较输入的值:
read $choice
if [ "$choice" == 2 ];then
#do something
elif [ "$choice" == 1 ];then
#do something else
else
echo "Invalid choice!!"
fi
如果我输入 1 或 2,输出将直接进入无效选择。我尝试在 if 语句内的 1 和 2 周围加上引号。还是没用。使用-eq
给我一个错误“预期一元运算符”。我在这里做错了什么?
Your read
线路不正确。将其更改为:
read choice
即使用要设置的变量的名称,而不是其值。
-eq
是比较整数的正确测试。看man test
对于描述(或man bash
).
另一种选择是使用算术评估(但您仍然需要正确的read
陈述):
read choice
if (( $choice == 2 )) ; then
echo 2
elif (( $choice == 1 )) ; then
echo 1
else
echo "Invalid choice!!"
fi
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)