shell编程的条件判断
叔公很忙 人气:3条件判断:
当条件判断的结果为真时$?的值为0,
如果判断的结果为假的则$?的值为非0
test即为判断命令!:
]:~$ test a.txt -nt b.txt 判断a.txt是否比b.txt文件新,这种为命令行格式.
但是在编程中常用的格式为:
]:~$ [ a.txt -nt b.txt ] 判断的条件与上面是一致的,所以test命令可以基本不用
文件类型判断
-e 判断文件是否存在
-d判断是否为目录文件
-f判断是否为普通文件
-L判断是否是连接文件
-s判断文件内是否有数据
数值大小判断
-eq判断前面的数值是否等于后面的数值
-nq判断前面的数值是否不等于后面的数值
-gt判断前面的数值是否大于后面的数值
-lt判断前面的数值是否小与后面的数值
-ge判断前面的数值是否大于等于后面的数值
-le判断前面的数值是否小于等于后面的数值
文件权限判断
-r判断文件是否有可读权限,只要ugo任何一个有则为真
-w判断文件是否有可写权限,只要ugo任何一个有则为真
-x判断文件是否有可执行权限,只要ugo任何一个有则为真
-u判断文件是否有suid
-g判断文件是否有sgid
-k判断文件是否有sbit
文件的时间比较
-nt判断前面的文件是否比后面的文件新 new then
-ot判断前面的文件是否比后面的文件老 old then
-ef判断前后两个文件是否为硬连接文件
字符串判断
-z判断字符串是否为空
-n判断字符串是否有值
==判断前面的字符串是否和后面的字符串一致
!=判断前后两个字符串是否不一致
判断条件叠加
-a两个条件判断叠加,必须两个条件都判断为真,结果才为真
-o两个条件判断叠加,任何一个条件判断为真,结果就为真
加载全部内容