【Shell】【学习笔记】Linux Shell脚本应用(六)

课时6 条件测试

一、测试操作规范
测试的本质:
        就是一条操作命令,并根据 $? 的值来判断条件是否成立。
测试操作规范:
        格式1:test 条件表达式
        格式2:[ 条件表达式 ]
测试操作的练习方法:直接跟 && echo YES 判断结果。 返回YES,则表达式为真;没有返回结果,则表达式为假。方法如下:
        [ 条件表达式 ] && echo YES

示例1:测试/etc/grub是否为一个目录
[ root@localhost ~]# [ -d "/etc/grub" ]  && echo YES
YES

二、文件状态的检测
存在及识别:
-e
目标是否存在(Exist)
-d
是否为目录(Directory)
-f
是否为文件(File)
权限的检测:
-r
是否有读取( Read)权限
-w
是否有写入( Write)权限
-x
是否有可执行(e Xcute)权限

示例1:测试/etc/fstab是否为一个文件
[ root@localhost ~]# [ -f "/etc/fstab" ] && echo YES
YES
[ root@localhost ~]# [ -f "/etc" ] && echo YES
[ root@localhost ~]# 

示例2:测试/etc/shadow文件是否有相关权限
[ root@localhost ~]# ls -l /etc/shadow
- r-------- 1 root root 1386 11-08 20:39 /etc/shadow
[ root@localhost ~]# [ -x "/etc/shadow" ] && echo YES    //没有可执行权限
[ root@localhost ~]# [ -r "/etc/shadow" ] && echo YES    //有读取权限
YES
[ root@localhost ~]# [ -w "/etc/shadow" ] && echo YES     //有写入权限(所有者例外)
YES
[ root@localhost ~]# 

三、整数值比较、字串匹配
整数值比较:数值1 比较操作符 数值2
-eq
等于( Equal)
-ne
不等于 Not Equal)
-gt
大于( Greater  Than)
-lt
小于(Lesser Than)
-ge
大于或等于 Greater or Equal)
-le
小于或等于(Lesser or Equal
字符串匹配:字符串1 比较操作符 字符串2
=
字符串相同
!= 字符串不同

示例1:整数值比较,判断当前登陆用户数的情况
[ root@localhost ~]# who | wc -l
2
[ root@localhost ~]# [ $( who | wc -l)  -eq 2 ]  && echo YES
YES
[ root@localhost ~]#  [ $( who | wc -l)  -gt 5 ]  && echo YES
[ root@localhost ~]# 

示例2:字符串比较,判断当前登陆用户是否为root
[ root@localhost ~]# echo $USER
root
[ root@localhost ~]# [ $USER = "root" ] && echo YES
YES
[ root@localhost ~]#  [ $USER != "nobody"  ]  && echo YES
YES
[ root@localhost ~]# 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值