shell编程的条件判断

shell编程的条件判断

条件判断:

当条件判断的结果为真时$?的值为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两个条件判断叠加,任何一个条件判断为真,结果就为真

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzysyd.html