条件测试与比较

Posted yaowensheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了条件测试与比较相关的知识,希望对你有一定的参考价值。

[[]]、[]、test、(())

条件测试方法

条件测试语法 说明
语法1:test <测试表达式>

这是利用test命令进行条件测试表达式的方法。test命令和

"<测试表达式>"之间至少有一个空格

语法2:[ <测试表达式> ]

这是通过[]进行条件测试表达式的方法。和test命令用法相同,推荐此方法。

[]的边界和内容至少有一个空格

语法3:[[ <测试表达式> ] ]

这是通过[[ ]]进行条件测试表达式的方法。

[[]]的边界和内容至少有一个空格

语法4: ((<测试表达式> ))

这是通过(())进行条件测试表达式的方法,一般用于if语句里。

(())前端不需要空格

 

文件测试表达式

常用文件测试操作符 说明
-d 文件,directory 文件存在且为目录为真,即测试表达试成立
-f 文件,file 文件存在且为普通文件则为真
-e 文件,exist 文件存在则为真,-f,-e不辨别是目录还是文件
-r 文件,read 文件存在且可读则为真
-s文件,size 文件存在且文件大小不为0为真
-w文件,write 文件存在且可写则为真
-x文件 ,executable 文件存在且可执行则为真
-L 文件,link 文件存在且为链接文件则为真
f1 -nt f2,nt为newer than 文件1比文件2新则为真
f1 -ot f2,ot为older than 文件1比文件2旧则为真

字符串测试操作符

常用字符串测试操作符 说明
-n "字符串" 若字符串的长度不为0,则为真,n可理解为no zero
-z "字符串" 若字符串的长度为0,则为真
"串1"="串2" 若字符串1等于字符串2,则为真
"串1"!="串2" 若字符串1不等于字符串2,则为真

“=”两边需要有空格

整数二元比较操作符

[]及test使用的比较符号 (())和[[]]使用的比较符号 说明
-eq ==或= 相等,equal
-ne != 不相等,not equal
-gt > 大于,greater than
-ge >= 大于等于,greater equal
-lt < 小于,less than
-le <= 小于等于,less equal

逻辑操作符

[]及test使用的比较符号 (())和[[]]使用的比较符号 说明
-a && and,与,两端都为真,结果为真
-o || or,或,两端有一个为真,结果为真
not,非,两端相反,结果为真

 

以上是关于条件测试与比较的主要内容,如果未能解决你的问题,请参考以下文章

条件测试与比较

shell脚本的条件测试与比较

shell脚本的条件测试与比较

shell脚本的条件测试与比较

shell脚本的条件测试与比较

Shell编程-05-Shell中条件测试与比较