shell流程控制-if判断语句

当我们在写程序的时候,时常对上一步执行是否成功如何判断苦恼,当我们今天学习了if就可以解决你的苦恼。if语句在我们程序中就是用来做判断的,以后大家不管学习什么语言,以后只要涉及到判断的部分,大家就可以直接拿if来使用,不同的语言之间的if只是语法不同,原理是相同的。

一、shell中的运算

1.1)数学比较运算

        运算符解释
        -eq         等于
        -gt         大于
        -lt         小于
        -ge         大于或等于
        -le         小于或等于
        -ne         不等于

1.2)字符串比较运算

         运算符解释,注意字符串一定别忘了使用引号引起来
         ==          等于   
         !=          不等于
         -n          检查字符串的长度是否大于0  
         -z          检查字符串的长度是否为0

1.3)文件比较与检查

1.4)逻辑运算

1.5)赋值运算

二、if 语法

2.1)语法一: 单if语句

适用范围:只需要一步判断,条件返回真干什么或者条件返回假干什么。

语句格式

该语句翻译成汉语大意如下:

通过一段代码来演示一下吧,判断 当前用户是不是root,如果不是那么返回”ERROR: need to be root so that!“

实验代码

执行以下看看吧

2.2)语法二: if-then-else语句

适用范围:两步判断,条件为真干什么,条件为假干什么。

该语句翻译成汉语大意如下:

通过一段代码演示一下吧,判断当前登录用户是管理员还是普通用户,如果是管理员输出”hey admin“ 如果是普通用户输出”hey guest“

实验代码

执行结果

2.3)语法三: if-then-elif语句

适用范围:多于两个以上的判断结果,也就是多于一个以上的判断条件。

该语句翻译成汉语大意如下:

通过一段代码演示一下吧,通过一个脚本,判断两个整数的关系。

实验代码

执行结果

三、if 高级应用

1、条件符号使用双圆括号,可以在条件中植入数学表达式

通过代码来看下吧

注意 双小圆括号中的比较运算符 使用的是我们传统的比较运算符 >>= == <<= !=

2、使用双方括号,可以在条件中使用通配符

通过代码看下 ,为字符串提供高级功能,模式匹配 r* 匹配r开头的字符串

执行结果

job

1.判断一个机器是否存活,能ping通就算存活

2.判断服务器上的某个服务是否开启

3.判断某年是否为闰年

4.写一个Nginx安装脚本,加入判断,当上一步执行成功在执行下一步,否则退出脚本

5.写一个备份脚本,将A机器当天修改过的文件收集到/cache目录,打包并发送到B机器的/opt/backup目录下,通过MD5值判断是否B机器上的备份的完整性

最后更新于

这有帮助吗?