shell编程中select语句的使用

利用select语句可以非常方便的实现菜单循环结构,其语法如下

select variable in list #将列表中的每一个菜单项之前添加从1开始递增的序号
#显示环境变量PS3的值(存放的是引导用户输入的提示信息)
#用户选择的菜单序号存在变量REPLY中,对应的List菜单项的内容存放在variable变量中
do #用户每选择了一个菜单项之后都会重新进入循环体
#执行语句块
done #本次循环结束,重新进入下一次菜单选择循环

这样看似乎不是很直观,我们从一个例子入门

  1 # !/bin/bash
  2 
  3 PS3="select your pefer laguage:"
  4 select s in bash perl python ruby '(quit)'
  5   do
  6     case $s in
  7       bash|perl|python|ruby) echo "you select menu$RELAY):$s";;
  8       '(quit)') break ;;
  9       *) echo "please select correct" ;;
 10     esac
 11   done

很简单的一个例子,就是通过循环菜单体选择我们喜欢的脚步语言。下面是运行结果。

chenfeihaodeMacBook-Pro:sh chenfeihao$ ./select_prefer_language.sh 
1) bash
2) perl
3) python
4) ruby
5) (quit)
select your pefer laguage:1
you select menu1):bash
select your pefer laguage:2
you select menu2):perl
select your pefer laguage:3
you select menu3):python
select your pefer laguage:5  
chenfeihaodeMacBook-Pro:sh chenfeihao$ 

可以看到每次循环开始前都会打印我们定义的PS3提示变量,而在REPLY变量中保存的是菜单项的序号。list中的每一项都对应了一个菜单项,而由于select是一个无限循环所以提供了出口quit。

这样我们就学会了怎么使用select语法实现我们程序中的菜单循环结构了。

你可能感兴趣的:(shell)