![]()
一、if单分支结构

![]()

准备知识:
查看系统内存:free指令 -m表示以MB的大小显示
mem是系统内存,swap是虚拟内存,需要将系统剩余内存大小过滤出来,之后与100M对比

也可以用awk指令
![]()
使用正则表达式过滤,以空格(不管几个)作为分隔符分割,取第四个字段

发邮件:
安装邮件服务器服务端:
![]()
启动邮件服务器:
![]()
-s指定标题,之后跟用户名,回车之后输入内容,交互式方式

脚本里面不能交互式,所以我们使用echo

做题:
![]()

![]()
直接写10是每个小时的第10分,所以是*/10,表示每十分钟
![]()
![]()

判断是不是root有多种方式:


![]()

![]()
![]()

二、if双分支结构

![]()
用systemctl status 判断进程状态,如果状态码是0则说明进程运行,如果非0,没有运行
也可以使用ps -ef,进程运行至少要有两行输出,进程没有运行过滤时grep的也会输出。可以用grep -v grep将grep自己过滤掉,之后用wc -l显示有多少行输出。0就是进程没有运行,非0就是进程运行


![]()
使用systemctl status:

使用ps -ef:

![]()

![]()

![]()
-c指定发几个包,-W表示超时时间timeout,1表示1s,后面跟要拼哪个主机,标准输出和标准错误输出写到黑洞

![]()

三、if多分支结构

![]()
![]()

![]()


![]()

![]()


![]()



过滤vendor_id,可能有多行输出,去重,用awk指令,-F指定分隔符,显示最后一个字段($NF),或者第二个字段($2)也是一样的,也可以用cut,结果有空格,可以用下面的space匹配

![]()
Space表示空格,*表示出现0~多次匹配,$表示以什么结尾

![]()

四、多条件判断语句case

![]()
![]()



![]()
![]()

![]()




















