【发布时间】:2017-04-07 19:03:36
【问题描述】:
第一次在这里提问,还在学习 bash,请多多包涵。
我使用 while 和 case 制作了一个主屏幕,它应该可以工作,但它不是,我不知道我在哪里犯了错误。
while [ $WH!=5 ]
do
echo "Choice menu:"
echo " 1) Option 1"
echo " 2) Option 2"
echo " 3) Option 3"
echo " 4) Option 4"
echo " 5) End script"
echo -n "Choose an option: "
read $OP
case $OP in
1)
# code;;
2)
# more code;;
3)
# more code;;
4)
# even more code;;
5)
echo "Thank you for testing this script!"
$WH=5;;
esac
done
无论我在$OP 中输入什么,脚本都会不断重复选择菜单,直到我取消它。我尝试移动 while 并使用$OP 作为条件,但似乎没有任何效果。
【问题讨论】:
-
必须是
read OP,而不是read $OP。 -
while条件也不正确(!=周围需要空格)-shellcheck.net 会告诉你类似的事情。 -
这可能会有所帮助:How to debug a bash script?
-
顺便看看
select语句来构建这样的简单菜单。 -
将
$WH=5替换为WH=5,将!"替换为"!,将read $OP替换为read OP。