我正在使用这样的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