只要 $CHOICE 不是“QUIT”或小于给定整数(变量)的数字,我就会留在这个循环中。
我正在使用这个:(以 22 为例)
NUMBER=22
CHOICE=99
while [ "$CHOICE" -gt "$NUMBER" ] && [ "$CHOICE" != "QUIT" ]; do
read CHOICE < /dev/tty
done
但是如果我说“测试”,脚本就会崩溃,因为它在第一个测试中需要一个整数。
我能做些什么来避免这种崩溃?
只要 $CHOICE 不是“QUIT”或小于给定整数(变量)的数字,我就会留在这个循环中。
我正在使用这个:(以 22 为例)
NUMBER=22
CHOICE=99
while [ "$CHOICE" -gt "$NUMBER" ] && [ "$CHOICE" != "QUIT" ]; do
read CHOICE < /dev/tty
done
但是如果我说“测试”,脚本就会崩溃,因为它在第一个测试中需要一个整数。
我能做些什么来避免这种崩溃?
当 CHOICE 不是“QUIT”或小于 NUMBER 的整数时,以下代码将循环:
如果您还希望在用户输入 ^D 时退出循环,您应该将
read
作为循环条件:while read CHOICE; do case $CHOICE ...
.调整mosvy的答案:
read
进入循环。$CHOICE
,并且*)
为?*)
,减少一个条件 - mosvy可能会|''
失败。您可能需要对字母字符进行额外测试,例如