Bash提供select循环,语法如下:
select VAR in LIST
do
command1
command2
...
commandN
done
select循环语句由如下特点:
select语句使用Bash内部变量PS3的值作为它的提示符信息。
打印到屏幕上的列表LIST中的每一项都会加上一个数字编号。
当用户输入的数字和某一个数字编号一致时,列表中响应的项即被赋予变量VAR。
如果用户输入为空,将重新显示列表LIST中的项和提示符信息。
可以通过添加一个退出选项,或者Ctrl+C、Ctrl+D组合键退出select循环。
如:
[root@rs1 test]# cat select.sh PS3="Run command:" clear select choice in date w hostname "uname -r" Exit do case $choice in date) $choice ;; w) $choice ;; "uname -r") $choice ;; hostname) $choice ;; Exit) echo "Bye!" exit 0 ;; esac done
执行结果:
[root@rs1 test]# bash select.sh //清理屏幕 1) date 2) w 3) hostname 4) uname -r 5) Exit Run command:1 Fri Jul 6 04:01:01 CST 2018 Run command:2 04:01:02 up 9:25, 2 users, load average: 0.00, 0.01, 0.05 USER TTY LOGIN@ IDLE JCPU PCPU WHAT root pts/0 03:03 6.00s 0.04s 0.00s w root pts/1 03:03 57:10 0.00s 0.00s -bash Run command:3 rs1 Run command:4 3.10.0-123.el7.x86_64 Run command:5 Bye!
上述shell脚本也可以如此编写:(运行结果无差别)
[root@rs1 test]# cat select_1.sh PS3="Run command:" clear select choice in date w hostname "uname -r" "exit" do $choice done