select 表达式是一种bash的扩展应用,动作包括:
自动用1,2,3,4列出菜单 (
没有echo指令,自动显示菜单)
自动read输入选择 (
没有 read指令,自动输入)
赋值给变量
(
没有赋值指令,自动输入数字后,赋值字符串给变量)
select典型例子
虽然select本身就是循环,但不建议用他的循环 ,因为select虽然循环却不再显示菜单,只循环输入, 所以seleckt 语句干脆直接用break,只执行一次,在其上另配while循环
[macg@machome ~]$ vi test.sh echo "What is your favourite OS?" select var in "Linux" "Gnu Hurd" "Free BSD" "Other"; do break done echo "You have selected $var" |
[macg@machome ~]$ sh test.sh What is your favourite OS? 1) Linux 2) Gnu Hurd 3) Free BSD 4) Other #? 2 You have selected Gnu Hurd |
虽然select本身就是循环,但不建议用他的循环 ,因为select虽然循环却不再显示菜单,只循环输入, 所以seleckt 语句干脆直接用break,只执行一次,在其上另配while循环
while echo "display current netconfig:" do select vi in "ifconfig -a" "hosts" "netmasks" "quit" do case $vi in "ifconfig -a") "hosts") more hosts;; "netmasks") more netmasks;; "quit") return 0;; *) continue;; esac break done done |
$ sh test display current netconfig 1) ifconfig -a 2) hosts |