Bash脚本:循环执行后总是显示菜单

我正在使用这样的bash脚本菜单:

#!/bin/bash PS3='Please enter your choice: ' options=("Option 1" "Option 2" "Option3" "Quit") select opt in "${options[@]}" do case $opt in "Option 1") echo "you chose choice 1" ;; "Option 2") echo "you chose choice 2" ;; "Option 3") echo "you chose choice 3" ;; "Quit") break ;; *) echo invalid option;; esac done 

每次菜单select后,我只是得到提示

 Please enter your choice: 

在每个选项完成执行后,如何始终显示菜单? 我已经做了一些环顾四周,我想我可以做一些while循环,但我一直无法得到任何工作。

使它美观和用户友好;-)

 #!/bin/bash while : do clear cat<<EOF ============================== Menusystem experiment ------------------------------ Please enter your choice: Option (1) Option (2) Option (3) (Q)uit ------------------------------ EOF read -n1 -s case "$REPLY" in "1") echo "you chose choice 1" ;; "2") echo "you chose choice 2" ;; "3") echo "you chose choice 3" ;; "Q") exit ;; "q") echo "case sensitive!!" ;; * ) echo "invalid option" ;; esac sleep 1 done 

在这个例子中用函数调用或者调用其他脚本替换回声。

只是修改你的脚本,如下所示。 它为我工作!

  #!/bin/bash while true do PS3='Please enter your choice: ' options=("Option 1" "Option 2" "Option 3" "Quit") select opt in "${options[@]}" do case $opt in "Option 1") echo "you chose choice 1" break ;; "Option 2") echo "you chose choice 2" break ;; "Option 3") echo "you chose choice 3" break ;; "Quit") echo "Thank You..." exit ;; *) echo invalid option;; esac done done