使用while和case时出现Bash脚本错误

时间:2016-11-23 16:50:42

标签: bash centos5

第一次在这里问一个问题并且还在学习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作为条件,但似乎没有任何效果。

1 个答案:

答案 0 :(得分:2)

您的脚本中有多个问题: -

  1. while构造需要为while [ "$WH" != 5 ]。记得要双引所有的shell变量。
  2. read命令应为read OP
  3. case构造需要至少一行,结尾为;;
  4. 最终作业声明应为WH=5而不是$WH=5
  5. 使用https://www.shellcheck.net调试此类微不足道的问题。