我想要做的基本上是从标准输入中读取一个变量,并检查该变量是否为1或2。如果不是,我希望通知用户并再次询问。我认为使用while循环是有意义的(我在bash shell中使用OS X Mavericks)。
对于单个条件,可以使用以下方法:
read result
while [[ "$result" != "1" ]];
do
echo $result
echo "You must enter 1 or 2. Please try again: "
read result
done
echo "success"
但是当我尝试进行或条件时:
while [[ "$result" != "1" ]] || [[ "$result" != "2" ]];
如果我在终端中输入1或2,那么这并不匹配输入的1或2。我也尝试过
while [[ "$result" != "1" ] || [ "$result" != "2" ]];
这会导致语法错误。
while [[ "$result" != "1" || "$result" != "2" ]];
这也不匹配1或2。 有人知道正确的语法吗?