select-创建菜单
         
                原创
        
    
    
                
             ©著作权归作者所有:来自51CTO博客作者rookie_master的原创作品,请联系作者获取转载授权,否则将追究法律责任        
            
                    
                1、描述
主要作用就是创建菜单,默认提示符是#?,可以修改PS3来控制提示符  (cat生成菜单的方式被称为here文档)
 
 select --> 也是循环的一种,它默认把数字或者序号对应的命令列出来,每输入一个数字或者序号,则会执行该数字或者序号对应的命令,执行完以后不退出脚本并且提示再次输入数字或者序号,如果用户需求执行完一个命令就退出,可以在每个判断下面加一个exit
 REPLY变量记录了输入的内容,类似read不加变量时临时存放的值一样
2、实例
# 实例1: 执行完命令不退出脚本
#!/bin/bash
PS3="Please select a number: "                                            # 自定义该程序的命令提示符(只限于该程序,系统的用PS1和PS2)定制自己需要的命令提示符
echo "Please chose number, 1: run w,  2:run top 3:run  free,  4:run quit" # 让用户输入一个数字,并定义了输入1、2、3、4执行哪些相对应的命令
echo                                                                      # 此echo用于换行
select  i  in  w  top  free  quit  # 等同于for循环定义执行多个命令,而select会把多个命令列出来,然后根据用户输入的数字或者序号执行相对应的命令
do
  case "$i" in                     # 判断用户输入的数字或者序号对照下面相对应的命令去执行
     w) w    ;;
   top) top  ;;
  free) free ;;
  quit) exit ;;
     *) echo  "Please  input  a number(1-4)."
  esac
done
# 实例2: 从数组打印内容
#!/bin/bash
fruits=("apple" "pear" "orange" "watermelon") 
PS3="======> Pkease guess which >> "
select i in ${fruits[@]}
do
  echo $i
done
1) apple
2) pear
3) orange
4) watermelon
======> Pkease guess which >> 1
apple
======> Pkease guess which >> pear
======> Pkease guess which >> 2
pear
[root@ /cdly/awk]# echo ${fruits[@]}
apple pear orange watermelon
# 实例3: 获取REPLY值
[root@ /cdly/awk]# select i in aa bb cc; do echo "$i ---> ${REPLY}"; done      
1) aa
2) bb
3) cc
#? 1
aa ---> 1
#? 2
bb ---> 2
#? 3
cc ---> 3
#? 4
 ---> 4
#? nimenhao
 ---> nimenhao