2015-11-20 69 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不相等