2015-11-20 91 views
0

我有这个while循环的问题。我希望用户选择三个选项之一。我收到错误“预期的整数表达式”。当我删除最后一个选项“$ UCHOICE” - 一个“q”时,该程序将工作,直到我键入一个字母,并且我得到相同的“预期的整数表达式”。我猜测这个问题与整数和字符串有关,但我不知道。请帮忙。while loop integer expression expected

while [ "$UCHOICE" -ne "1" -a "$UCHOICE" -ne "2" -a "$UCHOICE" -ne "q" ] 
do 
echo "hello" 
read UCHOICE 
done 

回答

3

您需要使用!= for string comparison

while [ "$UCHOICE" != "1" -a "$UCHOICE" != "2" -a "$UCHOICE" != "q" ] 
do 
echo "hello" 
read UCHOICE 
done 
+0

非常感谢!有效! – soso

1

我觉得下面的信息将帮助您:

stringA = stringB stringA不匹配stringB

exprA -ne exprB算术表达式exprA和exprB不相等