Bash - 检查变量值

问题描述 投票:0回答:2

我试图检查变量$ 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]'`。

bash
2个回答
4
投票

根据您的实际需要,正确的代码应如下:

if [ "$userSelection" -ne 1 ] && [ "$userSelection" -ne 2 ] && [ "$userSelection" -ne 3 ]
then 
    echo "Option selected not valid...please try again."
fi

根据你的说法,唯一正确的选择应该是1,2或3。


1
投票

除了缺少括号,进行此类检查的最简单方法是使用case语句:

case $userSelection in
   1|2|3) ;;
   *) echo "Option selected not valid...please try again." ;;
esac
© www.soinside.com 2019 - 2024. All rights reserved.