我试图检查变量$ userSelection是否没有值1,2或3,然后我显示错误消息。试过以下和其他组合,但没有运气。
if [ $userSelection -ne 1 || $userSelection -ne 2 ] || [ $userSelection -ne 2 || $userSelection -ne 3 ]
then
echo "Option selected not valid...please try again."
fi
我得到错误[: missing
]'`。
根据您的实际需要,正确的代码应如下:
if [ "$userSelection" -ne 1 ] && [ "$userSelection" -ne 2 ] && [ "$userSelection" -ne 3 ]
then
echo "Option selected not valid...please try again."
fi
根据你的说法,唯一正确的选择应该是1,2或3。
除了缺少括号,进行此类检查的最简单方法是使用case
语句:
case $userSelection in
1|2|3) ;;
*) echo "Option selected not valid...please try again." ;;
esac