shell判断false_shell流程控制-if判断语句

shell流程控制-if判断语句

shell中的五大运算

if语法

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

一、shell中的运算

1.1)数学比较运算

运算符解释

-eq 等于

-gt 大于

-lt 小于

-ge 大于或等于

-le 小于或等于

-ne 不等于

1.2)字符串比较运算

运算符解释,注意字符串一定别忘了使用引号引起来

== 等于

!= 不等于

-n 检查字符串的长度是否大于0

-z 检查字符串的长度是否为0

1.3)文件比较与检查

-d 检查文件是否存在且为目录

-e 检查文件是否存在

-f 检查文件是否存在且为文件

-r 检查文件是否存在且可读

-s 检查文件是否存在且不为空

-w 检查文件是否存在且可写

-x 检查文件是否存在且可执行

-O 检查文件是否存在并且被当前用户拥有

-G 检查文件是否存在并且默认组为当前用户组

file1 -nt file2 检查file1是否比file2新

file1 -ot file2 检查file1是否比file2旧

1.4)逻辑运算

逻辑与运算 &&

逻辑或运算 ||

逻辑非运算 !

逻辑运算注意事项:

逻辑与 或 运算都需要两个或以上条件,逻辑非运算只能一个条件。

口诀: 逻辑与运算 真真为真 真假为假 假假为假

逻辑或运算 真真为真 真假为真 假假为假

逻辑非运算 非假为真 非真为假

1.5)赋值运算

= 赋值运算符 a=10 name='baism'

二、if 语法

2.1)语法一: 单if语句

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

语句格式

if [ condition ] #condition 值为true or false

then

commands

fi

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

假如 条件为真

那么

执行commands代码块

结束

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

实验代码

image

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

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

if [ condition ]

then

commands1

else

commands2

fi

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

假如条件为真

那么

执行commands1代码块

否则

执行commands2代码块

结束

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

实验代码

执行结果

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

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

if [ condition 1]

then

commands1

elif [ condition 2]

then

commands2

.......

else

commandsX

fi

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

假如 条件1 为真

那么

执行代码块1

假如 条件2 为真

那么

执行代码块2

以此类推的N个条件及对应的执行代码块

否则 【以上所有条件中没有一个满足的】

执行代码块X

结束

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

实验代码

三、if 高级应用

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

通过代码来看下吧

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

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

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

代码:

[root@baism shell]# cat if-1.sh

!/bin/bash

Author: Bai Shuming

Created Time: 2018/08/27 16:30

Script Description:

if [ $USER != 'root' ]

then

echo "ERROR: need to be root so that"

exit 1

fi

[root@baism shell]# cat if-2.sh

!/bin/bash

Author: Bai Shuming

Created Time: 2018/08/27 16:45

Script Description:

if [ $USER == 'root' ]

then

echo "hey admin"

else

echo "hey guest"

fi

[root@baism shell]# cat if-3.sh

!/bin/bash

Author: Bai Shuming

Created Time: 2018/08/28 10:34

Script Description:

if [

2 ]

then

echo "$1 > $2"

elif [

2 ]

then

echo "$1 = $2"

else

echo "

2"

fi

[root@baism shell]# cat if-4.sh

!/bin/bash

Author: Bai Shuming

Created Time: 2018/08/28 10:47

Script Description:

if (( (5+5-5)*5/5 > 10 ))

then

echo "yes"

else

echo "no"

fi

[root@baism shell]# cat if-5.sh

!/bin/bash

Author: Bai Shuming

Created Time: 2018/08/28 10:54

Script Description:

for var in ab ac rx bx rvv vt

do

if [[ "$var" == r* ]]

then

echo "$var"

fi

done a

job:

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

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

3.判断某年是否为闰年

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值