【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
二、文件状态的检测
存在及识别:
权限的检测:
示例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
字符串匹配:字符串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 ~]#
一、测试操作规范
测试的本质:
就是一条操作命令,并根据 $? 的值来判断条件是否成立。
测试操作规范:
格式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)权限 |
[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) |
= | 字符串相同 |
!= | 字符串不同 |
[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 ~]#
相关文章推荐
- 【Shell】【学习笔记】Linux Shell脚本应用(九)
- 【Shell】【学习笔记】Linux Shell脚本应用(三)
- 【Shell】【学习笔记】Linux Shell脚本应用(二)
- 【Shell】【学习笔记】Linux Shell脚本应用(五)
- 【Shell】【学习笔记】Linux Shell脚本应用(七)
- 【Shell】【学习笔记】Linux Shell脚本应用(四)
- 【Shell】【学习笔记】Linux Shell脚本应用(一)
- 【Shell】【学习笔记】Linux Shell脚本应用(十一)
- 【Shell】【学习笔记】Linux Shell脚本应用(八)
- 【Shell】【学习笔记】Linux Shell脚本应用(十)
- 学习笔记之Linux Shell脚本教程:30分钟玩转Shell脚本编程
- 网易公共课Linux Shell脚本应用学习笔记
- shell时间,shell创建文件,linux shell编写以日期时间为文件名的脚本学习笔记 (转)
- Shell脚本学习笔记(六)--转向与陷阱
- Shell脚本学习笔记(三)--算术运算
- Shell脚本学习笔记(七)--sed和awk
- Shell脚本学习笔记(五)--函数
- Shell脚本学习笔记(六)--转向与陷阱
- Shell脚本学习笔记(一)--预备知识
- Shell脚本学习笔记(四)--流程控制