您的位置:首页 > 运维架构 > Shell

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

2014-10-24 20:56 891 查看
课时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
是否有可执行(eXcute)权限
示例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 ~]#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: