select结构是建立菜单的另一种工具,该结构是从ksh中引入的

1.select格式

select variable [ in list ]

do

 commands

done

如果忽略了in list列表,那么select命令将会使用传递到脚本的命令行参数($@),或者是函数参数(当select是在函数中时)

2.样例

样例-1:

[root@kibana ~]# cat select-1.sh 
#!/bin/bash

PS3='Choose your favorite vegetable: '
#设置提示符字符串
echo

select vegetable in "beans" "carrots" "potatoes" "onions" "rutabagas"
do
  echo
  echo "Your favorite vegetable is $vegetable."
  break
done

exit 0
[root@kibana ~]# sh select-1.sh 

1) beans
2) carrots
3) potatoes
4) onions
5) rutabagas
Choose your favorite vegetable: 1

Your favorite vegetable is beans.
[root@kibana ~]#

样例-2:

[root@kibana ~]# cat select-2.sh 
#!/bin/bash

PS3='Choose your favorite vegetable: '
#设置提示符字符串
echo

function choice_of_vegetable ()
{
  select vegetable
  #[in list]被忽略,select会使用传递给函数的参数.
  do
   echo
   echo "Your favorite vegetable is $vegetable."
   break
  done
}

choice_of_vegetable "beans" "carrots" "potatoes" "onions" "rutabagas"
                   #  $1       $2        $3         $4        $5
                   #传递给choice_of_vegetable()的函数
exit 0
[root@kibana ~]# sh select-2.sh 

1) beans
2) carrots
3) potatoes
4) onions
5) rutabagas
Choose your favorite vegetable: 1

Your favorite vegetable is beans.
[root@kibana ~]#