案例陈述不匹配“*”

时间:2013-03-12 20:40:24

标签: bash

我正在写一个bash脚本。它是菜单驱动的。

出于某种原因,我使用了一个case语句,在打印完所有选项之后,我使用*来捕获用户可能输入的任何其他内容。但出于某种原因,我的输出没有完成。

示例:

while [ 1 ]; do
       if [ $MAIN_MENU -eq 1 ]; then
       printMainMenu
       read option
       case "$option" in
            "1" ) printDiskSpace;;
            "2" ) printFreeMemory;;
            "0" ) exit;;
            "*" ) echo "Input not understood.";;
       esac
       fi
done

现在发生的事情是当我使用菜单时,如果我输入1,2或0,它会做正确的事情。但如果我输入55例如,它只会重新显示菜单而不回显“输入不理解”。

我在这里错过了什么吗?

谢谢!

2 个答案:

答案 0 :(得分:5)

对于Bash默认情况,请使用*)而不是"*")

所以,在你的例子中:

 *) echo "Input not understood.";;

答案 1 :(得分:3)

我发现我需要删除星号周围的引号......哇。

感谢您的期待!