SHELL脚本,执行有问题

set_menu_choice() {
clear
echo "Options :-"
echo
echo "   a) Add new CD"
echo "   f) Find CD"
echo "   c) Count the CDs and tracks in the catalog"
echo
echo -e "Please enter choice the press return \c"
read menu_choice
return
}

echo "Mini CD manager"
sleep 1

quit=n

while [ "$quit" != "y" ]
do
    set_menu_choice
    case "$menu_choice" in
        q | Q) quit=y;;
        *) echo "Sorry, choice not regconized";;
    esac
done
echo "Finished"
exit 0

当输入q的时候,能够正常退出;可是当输入其他字符,却不能正常匹配第二个星号选项

请看看是什么原因导致呢?~初学者,请指教

阅读 4.7k
2 个回答

While 死循环会永远执行(输入q 或Q 时会结束脚本),由于每次不是正常退出是都会调用setmenuchoice 执行 clear ,所以你上一条的 *)匹配被清屏了,你终端再往上拉进度条就能看到。

你把clear注释掉就知道为什么了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题