Bash 在 while 循环内读取问题

Bash 在 while 循环内读取问题

我试图提示用户输入“5”或“10”,然后将其存储为变量。如果他们没有输入这两个数字中的任何一个,则继续提示他们,直到他们输入为止。我尝试运行以下代码,但似乎不起作用。

read -p'请输入您的号码。(5 或 10)'num_choice

当(($num_choice != 5|10))

读作‘请输入 \"5\" 或 \"10\"’ num_choice

完毕

echo "您已选择数字 $num_choice"

另外,块引用似乎不允许我使用单倍行距,也不允许缩进,我想我做错了。抱歉,我对脚本还不太熟悉!谢谢!

答案1

不能5|10在比较器的右侧使用。必须“分散”比较

num_choice=0
while (( num_choice != 5 && num_choice != 10 )) ; do
    read -p 'Please enter your number (5 or 10)' num_choice
done
echo "You've chosen $num_choice"

请注意,如果用户指定非数字字符串,仍然会出现错误。

相关内容