while循环整数表达式

时间:2015-11-20 00:24:45

标签: shell unix while-loop

我有这个while循环的问题。我希望用户选择三个选项之一。我得到错误“预期的整数表达式”。当我删除最后一个选项“$ UCHOICE”-ne“q”时,程序一直有效,直到我输入一个字母,然后我得到相同的“整数表达式”。我猜这个问题与整数和字符串有关,但我不知道。请帮忙。

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

2 个答案:

答案 0 :(得分:3)

你需要使用!= string comparison

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

答案 1 :(得分:1)

我认为以下信息可以帮助您:

stringA!= stringB stringA与stringB

不匹配

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