Linux之shell脚本的条件测试语句

条件测试

条件测试可以使得脚本应对多种状况,或者配合上一篇写的变量应用提高应用范围。
条件测试的使用方法有两种如下

  1. test 表达式
  2. [表达式]

条件测试的类型

字符串类型

  1. == #等于
  2. != #不等于

变量类型

  1. -z 变量为空
  2. !-z 变量非空

逻辑组合类型

  1. && 与
  2. || 或(与编程内部的不一样)

例如

[ $USER != root ]  &&  exit   #如果当前用户不是root则退出
[ $USER != root ]  ||  exit   #如果当前用户是root则退出
#重叠用法
A && B && C                   #如果要执行C必须AB都成功
A || B || C                   #如果要执行C必须AB都失败

结合应用

#!/bin/bash
test $USER != root && echo "niger go work" && exit
read -p "yum what": n
yum -y install $n &> /txt.txt
systemctl start $n  && echo "succesl" || echo  "haha sb"

数字类型

-eq : 是否相等

-ne : 不等

-gt :大于

-ge : 大于等于

-lt : 小于

-le: 小于等于

我们可以使用上面的知识来写一个小脚本,功能为制作用户检查系统

前置条件:安装mailx postfix ,并且启动postfix

#!/bin/bash
x=$(cat /etc/passwd | wc -l)      #通过检测passwd文件查看有几名用户
test  x  != 5 &&  echo "fuck heik goinr" | mail -s test root  #如果用户数量变化则发邮件提醒

这是一个小安全脚本用于检测系统内的用户数量与原有值5是否一致如果不一致则发邮件给root用户,当然这个脚本并不完善只是一个简单的检测如果大家有更好的思路或者意见也可以在评论区提出来(俺一定回你)。
脚本写完后使用cron计划来自动执行

文件类型

-e :判断文件是否存在,全

-f :判断文件是否存在,类型为文件

-d :判断文件是否存在,类型为目录

-r :判断文件是否有读权限

-w:判断文件是否有写权限

-x:判断文件是否可以进入

例如

test -e /文件名
echo $?            #检测文件是否存在

[ -r /文件名 ]
echo $?           #检测当前用户是否可以存在对该文件的读取权限
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值