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有一个成立,最终结果为真 !判断:逻辑非,是原始的判断式取反