3

我正在编写一个 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,它只会重新显示菜单,而不会回显“输入不理解”。

我在这里错过了什么吗?

谢谢!

4

2 回答 2

5

*)不适用于"*")Bash 默认情况。

因此,在您的示例中:

 *) echo "Input not understood.";;
于 2013-03-12T20:43:59.333 回答
3

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

感谢您的关注!

于 2013-03-12T20:41:50.513 回答