shell的测试表达式有3种语法分别是 [] [[]] (())。还有区别,2年前,腾讯的电话面试,我就折在这上面了。特别总结一下,以备查!
1.整数比较
[](整数类型比较) | ` ` (( )) (整数、字符串均可) | 说明 |
-eq | = 或者 == | 等于 |
-ne | != | 不等于 |
-gt | > | 大于 |
-ge | >= | 大于等于 |
-lt | < | 小于 |
-le | <= | 小于等于 |
2.逻辑操作符
[] | ` ` (( )) | 说明 |
-a | && | 逻辑与 |
-o | || | 逻辑或 |
! | ! | 逻辑非 |
3.变量测试
-f | 普通文件是否存在 |
-d | 目录是否存在 |
-s | 存在且非空 |
-e | 文件存在(区别于-f) |
-r | 存在且可读 |
-x | 可执行 |
-L | 是否为链接文件 |
f1 -nt f2 | f1 比 f2 新 |
f1 -ot f2 | f1 比 f2 旧 |
-z "chars" | 变量为空 |
-n "chars" | 变量不为空 |