计算机网络/计算机科学与应用/系统/运维/开发

Shell脚本编程条件表达式怎么使用?

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



条件表达式

所谓坚持,就是从种子种下到开花结果需要等待的时间。

评论

^