案例陈述不匹配"*"

Dan*_*Dan 3 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
Run Code Online (Sandbox Code Playgroud)

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

我错过了什么吗?

谢谢!

Ran*_*ard 5

使用*)"*")用于Bash的默认情况下.

所以,在你的例子中:

 *) echo "Input not understood.";;
Run Code Online (Sandbox Code Playgroud)