注册 登录
  • 欢迎访问"运维那点事",推荐使用Google浏览器访问,可以扫码关注本站的"微信公众号"。
  • 如果您觉得本站对你有帮助,那么可以扫码捐助以帮助本站更好地发展。

Shell编程之选择语句

脚本编程 彭东稳 6369次浏览 已收录 0个评论

条件测试表达式

不管什么编程语言基本都会提供顺序,选择,循环这三种编程控制结构,而在shell中这三种编程控制结构分别对应如下:

顺序:Command

选择:If and Case

循环:For and While and Until

一个正确编写的Linux应用程序会告诉操作系统执行成功与否,它用什么方法告诉系统呢?那就是我们经常用到的exit状态,exit的状态数值的范围为0~255之间。“0”表示成功,其他数值都表示失败。exit状态有两个很重要的功能。第一个作用是检测和处理错误,第二个作用是可以执行True/False条件测试。

Exit语句

一个好的脚本编程者应该在脚本完成时设置exit状态,为了实现这个要求,就要使用exit命令。exit命令使脚本带着状态值立刻退出。例如:

exit 0  #退出脚本,状态值为0(成功)

exit 1  #退出脚本,状态值为1(失败)

True/False的条件测试经常是通过表达式和if一起配合实现的,而条件测试表达式有两种语法形式:

第一种:test expression

PStest命令工作很简单,如果给定的表达式为truetest退出的状态值为0,否则退出的状态值为1

第二种:[ expression ]

PS:要注意表达式位于中括号的中间,两边必须有空格。

条件测试方法

整数测试

字符测试

# -z使用案例;

# -n使用案例;

文件测试

逻辑表达式

取反

判断是否为数值或字符

在Shell编程中还会经常需要判断一个输入是否为数值或字符,但是遗憾的是Shell不支持正则表达式也没有这种判断的方式(Shell变量测试也可以做到),但是高兴的是可以在Shell中可以使用任意Linux命令。所以我们可以借助sed、awk、grep等程序来进行判断,如下:

IF选择语句

if单分支语句语法:条件为真时执行;条件为假时不做任何事情

IF双分支语句语法:条件为真时执行statement1;为假时执行statement2

IF多分支语句语法:条件为condition1时执行statement1;为condition2时执行statement2;否则执行statement3

CASE选择语句

实例

01)脚本判断条件之:以命令的状态返回结果为标准,测试redis用户是否存在

02)脚本判断条件之:以命令的执行结果为标准,测试用户的类型

03)脚本编写之:使用exit退出状态码(0正确状态;1-255错误状态),测试用户是否存在和用户UIDGID是否相同

04)脚本编写之:使用read -p接收用户输入做分数评级,用来测试多分支语句

05)脚本编写之:引用位置变量,判断用户随机输入的文件是否存在

 06)脚本编写之:引用位置变量,判断用户是否输入了参数

脚本中$#显示输入参数的个数,如果小于1就会退出。

07)脚本编写之:使用case语句来判断输入的字符

08)脚本编写之:使用case语句来编写SysV风格的服务脚本

PS:这里只是给了一些最简单的小脚本,当有基础之后就可以写出一些比较大一点实用一点的小程序,前提是必须熟练看看前两张关于Shell的一些零散功能,就是把各个小的功能组合起来来完成一个大的功能,这就是Linux系统的特点。


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (0)or分享 (0)
关于作者:

您必须 登录 才能发表评论!