Shell的条件执行
条件测试:
使用 test 命令设置状态码 0表示真 1表示假
test命令可以用于判断:
文件属性测试
字符串测试
算术测试
语法:
test expression(表达式)
或
[ EXPRESSION ]
实例: 基本使用
[root@localhost script]# test -d "$HOME"; echo $? 0 [root@localhost script]# [ "abc" != "def" ]; echo $? 0 [root@localhost script]# test 7 -gt 3 && echo True || echo False True
文件属性测试操作符:
-e <FILE> 如果FILE存在则为真 -f <FILE> 如果存在且是一个常规文件则为真 -d <FILE> 如果存在且是一个目录则为真 -c <FILE> 如果存在且是一个特殊字符文件则为真 -b <FILE> 如果存在且是一个特殊块文件则为真 -p <FIEL> 如果存在且是一个命名管道则为真 -S <FILE> 如果存在且是一个套接字文件则为真 -L <FILE> 如果存在且是一个符号链接则为真 -h <FILE> 如果存在且是一个符号链接则为真 -g <FILE> 如果存在且是设置 sgid位则为真 -u <FILE> 如果存在且是设置了suid则为真 -r <FILE> 如果存在且是可读的则为真 -w <FILE> 如果存在且是可写则为真 -x <FILE> 如果存在且是可执行则为真 -s <FILE> 如果存在且不为空则为真 -t <fd> 如果文件描述符<fd> 已打开且引用 一个终端则为真 <FILE1> -nt <FILE2> 如果file1比file2 新则为真 <FILE1> -ot <FILE2> 如果file1比file2 旧则为真 <FILE1> -ef <FILE2> 如果file1有硬链接到file2则为真
test命令使用参考:
https://www.runoob.com/linux/linux-shell-test.html