在Bash while循环中使用"和"

Smi*_*tty 25 linux bash

好的,基本上这就是脚本的样子:

echo -n "Guess my number: "
read guess

while [ $guess != 5 ]; do
echo Your answer is $guess. This is incorrect. Please try again.
echo -n "What is your guess? "
read guess
done

echo "That's correct! The answer was $guess!"
Run Code Online (Sandbox Code Playgroud)

我要改变的是这一行:

while [ $guess != 5 ]; do
Run Code Online (Sandbox Code Playgroud)

对于这样的事情:

while [ $guess != 5 and $guess != 10 ]; do
Run Code Online (Sandbox Code Playgroud)

在Java中我知道"和"是"&&"但这似乎不适用于此.我是否使用while循环以正确的方式进行此操作?

编辑:更新的问题,使其在搜索中更有用..

Mat*_*nov 42

有两种正确和便携的方法可以实现您的目标.
好旧shell语法:

while [ "$guess" != 5 ] && [ "$guess" != 10 ]; do
Run Code Online (Sandbox Code Playgroud)

bash语法(如您所指定):

while [[ "$guess" != 5 && "$guess" != 10 ]]; do
Run Code Online (Sandbox Code Playgroud)


thi*_*ton 27

[]bash中的运算符是用于调用的语法糖test,记录在其中man test."或"用中缀表示-o,但你需要一个"和":

while [ $guess != 5 -a $guess != 10 ]; do
Run Code Online (Sandbox Code Playgroud)