Bash 使用 while 和 case 的脚本错误
Bash script error using while and case
第一次在这里提问,还在学习中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
中输入什么,脚本都会不断重复选择菜单,直到我取消它。我尝试移动并使用 $OP
作为条件,但似乎没有任何效果。
您的脚本中存在多个问题:-
while
构造需要 while [ "$WH" != 5 ]
。请记住对所有 shell 变量进行双引号。
read
命令应该是read OP
case
结构需要至少一行以 ;;
结尾
- 最后的赋值语句应该是
WH=5
而不是$WH=5
使用 https://www.shellcheck.net 来调试这些微不足道的问题。
第一次在这里提问,还在学习中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
中输入什么,脚本都会不断重复选择菜单,直到我取消它。我尝试移动并使用 $OP
作为条件,但似乎没有任何效果。
您的脚本中存在多个问题:-
while
构造需要while [ "$WH" != 5 ]
。请记住对所有 shell 变量进行双引号。read
命令应该是read OP
case
结构需要至少一行以;;
结尾
- 最后的赋值语句应该是
WH=5
而不是$WH=5
使用 https://www.shellcheck.net 来调试这些微不足道的问题。