Linux之shell编程之条件判断与流程控制

时间:2022-02-25 05:38:12

Linux之shell编程之条件判断与流程控制

文件判断

-b 判断该文件是否存在,并且是否为块设备文件(是为真)
-c 判断该文件是否存在,并且是否为字符设备文件(是为真)
-d 判断该文件是否存在,并且是否为目录文件(是为真)
-e 判断该文件是否存在(存在为真)
-f 判断该文件是否存在,并且是否为普通文件(是为真)
-L 判断该文件是否存在,并且是否为符号链接文件(是为真)
-p 判断该文件是否存在,并且是否为管道文件(是为真)
-s 判断该文件是否存在,并且是否为非空(非空为真)
-S 判断该文件是否存在,并且是否为套接字文件(是为真)

[-e /root/install.log] <==> test -e /root/install.log 
[-e /root/install.log] && echo yes || echo no 
※ && 和 || 不可以调换位置
 
文件比较
 
file1 -nt file2:判断文件1的修改时间是否比文件2的新
file1 -ot file2:判断文件1的修改时间是否比文件2的旧
file1 -ef file2:判断文件1是否比文件2的Inode号一致,可以理解为两个文件是否为同一个文件。
整数比较 
 
num1 -eq num2:判断整数1是否和整数2相等
num1 -ne num2:判断整数1是否和整数2不相等
num1 -gt num2:判断整数1是否大于整数2
num1 -lt num2:判断整数1是否小于整数2
num1 -ge num2:判断整数1是否大于或等于整数2
num1 -le num2:判断整数1是否小于或等于整数2
字符串判断
-z 字符串 #判断是否为空,为空返回真
-n 字符串 #判断是否为非空,非空返回真
字符串1 = = 字符串2 #判断字符串是否相等,相等返回真
字符串1 != 字符串2 #判断字符串是否不等,不等返回真
多重判断
判断1 -a 判断2:逻辑与,判断1和判断2都成立,最终结果为真
判断1 -o 判断2:逻辑或,判断1和判断2有一个成立,最终结果为真
!判断:逻辑非,是原始的判断式取反