本文是Linux Shell脚本系列教程的第(十四)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程

在上一篇文章:Linux Shell系列教程之(十三)Shell分支语句case … esac教程 的最后,我们简单的介绍了一下使用case…esac来建立菜单的方法,其实shell中还有另外一种更专业的建立菜单的语句:select语句。

Select 搭配 case来使用,可以完成很多复杂的菜单控制选项。

select和其他流控制不一样,在C这类编程语言中并没有类似的语句,今天就为大家介绍下Shell Select语句的用法。

一、Shell Select语句语法

Shell中Select语句的语法如下所示:

select name   [in   list ]
do statements that can use  $name...
done

说明:select首先会产生list列表中的菜单选项,然后执行下方do…done之间的语句。用户选择的菜单项会保存在$name变量中。

另外:select命令使用PS3提示符,默认为(#?);

在Select使用中,可以搭配PS3=’string’来设置提示字符串。

二、Shell Select语句的例子

还是老样子,通过示例来学习Shell select的用法:

#!/bin/bash
#Author:linuxdaxue.com
#Date:2016-05-30
#Desc:Shell select 练习
PS3='Please choose your number: ' # 设置提示符字串.
echo
select number in "one" "two" "three" "four" "five"
do
echo
echo "Your choose is $number."
echo
break
done
exit 0

说明:上面例子给用户呈现了一个菜单让用户选择,然后将用户选择的菜单项显示出来。

这是一个最基本的例子,主要为大家展示了select的基础用法。当然,你也可以将break去掉,让程序一直循环下去。

下面是去掉break后输出:

$./select.sh
1) one
2) two
3) three
4) four
5) five
Please choose your number: 1Your choose is one.Please choose your number: 2Your choose is two.Please choose your number: 3Your choose is three.Please choose your number: 4Your choose is four.Please choose your number: 5Your choose is five.

然后我们将例子稍稍修改下,加入case…esac语句:

#!/bin/bash
#Author:linuxdaxue.com
#Date:2016-05-30
#Desc:Shell select case 练习
PS3='Please choose your number: ' # 设置提示符字串.
echo
select number in "one" "two" "three" "four" "five"
do
case $number in
one )
echo Hello one!
;;
two )
echo Hello two!
;;
* )
echo
echo "Your choose is $number."
echo
;;
esac
#break
done
exit 0

这样的话,case会对用户的每一个选项进行处理,然后执行相应的语句。输出如下:

$./select2.sh
1) one
2) two
3) three
4) four
5) five
Please choose your number: 1
Hello one!
Please choose your number: 2
Hello two!
Please choose your number: 3Your choose is three.Please choose your number: 4Your choose is four.

将这些语句进行修改拓展,就可以写出非常复杂的脚本。怎么样,是不是非常强大呢,赶快试试吧!

更多Linux Shell教程请看:Linux Shell脚本系列教程

原文:Linux Shell系列教程之(十四) Shell Select教程

上一篇:Linux Shell脚本入门教程系列之(十三)Shell分支语句case … esac教程

下一篇:Linux Shell脚本入门教程系列之(十五) Shell函数简介

本文转自:Linux Shell脚本入门教程系列之(十四) Shell Select教程

Linux Shell脚本入门教程系列之(十四) Shell Select教程相关推荐

  1. 2D游戏入门——小狐狸系列(十四)添加人物受伤动画

    Session14:受伤效果Hurt 首先为人物添加一个hurt动画,然后添加过渡条件: 新增一个hurting参数,用于判断受伤状态 写代码: //切换动画效果void SwitchAnimatio ...

  2. Linux Shell脚本入门教程系列之(十六) Shell输入输出重定向

    本文是Linux Shell系列教程的第(十六)篇,更多Linux Shell教程请看:Linux Shell系列教程 Shell中的输出和输入的重定向是在使用中经常用到的一个功能,非常实用,今天就为 ...

  3. Linux Shell脚本入门教程系列之(十五) Shell函数简介

    本文是Linux Shell脚本系列教程的第(十五)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 上一篇之后,函数可以将一个复杂功能划分成若干模块,从而使程序结构更加清晰 ...

  4. Linux Shell脚本入门教程系列之(十二)Shell until循环

    本文是Linux Shell脚本系列教程的第(十二)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 在上两篇文章Linux Shell系列教程之(十)Shell for循环 ...

  5. Linux Shell脚本入门教程系列之(十)Shell for循环

    本文是Linux Shell脚本系列教程的第(十)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 基本任何语言都有自己的循环语句,Shell当然也不例外,继上一篇之后,今天 ...

  6. Linux Shell脚本入门教程系列之(十三)Shell分支语句case … esac教程

    本文是Linux Shell脚本系列教程的第(十三)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 上一篇之 后,分支语句非常实用,基本上高级语言都支持分支语句(pytho ...

  7. Linux Shell脚本入门教程系列之(十一)Shell while循环

    本文是Linux Shell脚本系列教程的第(十一)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 在上一篇Linux Shell系列教程之(十)Shell for循环中, ...

  8. Linux Shell脚本入门教程系列之(九)Shell判断 if else 用法

    本文是Linux Shell脚本系列教程的第(九)篇,更多shell教程请看:Linux Shell脚本系列教程 判断语句是每个语言都必不可少的关键语法,Shell命令当然也不例外.继上一篇之后,今天 ...

  9. Linux Shell脚本入门教程系列之(八)Shell printf命令详解

    本文是Linux Shell脚本系列教程的第(八)篇,更多shell教程请看:Linux Shell脚本系列教程 在上一篇:Linux Shell系列教程之(七)Shell输出这篇文章中,已经对She ...

最新文章

  1. Paddle Release Note
  2. 微软任命LinkedIn高级副总裁为首席技术官
  3. i.MX31主要开发资源(转贴)
  4. SQL Server数据库是否会引发恶意?
  5. 海思Hi3716C多媒体芯片规格书介绍
  6. 网站地图在线生成html
  7. java封装继承多态实验总结_java封装继承多态理解3000字论文
  8. Linux下报ora-12162,登录RMAN 报ORA-12162:TNS:net service name is incorrectly specified错误
  9. 【项目实战】——历史数据归档
  10. 【数学建模】微分方程求解 | dsolve函数 | ode45函数
  11. 她力量系列四丨读博6年两次换导师,靠一点点“倔”,俞舟成为social chatbot的开拓者之一
  12. mysql error 1114_ERROR 1114 (HY000): The table 'test1' is full 的解决
  13. transforms常用函数简介
  14. Excel 宏快捷键删除单元格所在的行
  15. 【Python工具】Python版本的天眼查,是不是就很nice啦 | 附带源码
  16. 计算机无法分盘,电脑如何分盘
  17. 章节1 计算机体系结构
  18. ES的聚合操作(API版本)
  19. Python3基础知识
  20. 带你简单的了解和学习一下STM32f1精英版(入门级)

热门文章

  1. Build String(CF-237E)
  2. 二叉树遍历(信息学奥赛一本通-T1364)
  3. 信息学奥赛C++语言:三位数的翻转
  4. 导航栏iframe公共样式_中秋节微信公众号推文样式素材推荐
  5. Lazy Evaluation(延迟执行)
  6. [有限元] Ansys Workbench Mechanical 中的应力应变显示类型的文档翻译
  7. 四轴码垛机器人配件_四轴码垛机器人的应用范围
  8. FastCGI - How to run fastcgi and nginx on windows
  9. phpcms v9宽字节注入问题
  10. 门户网站新闻资讯整站打包带全自动采集