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" | 变量不为空 |
相关阅读:
Linux Shell参数替换 http://www.linuxidc.com/Linux/2013-06/85356.htm
Shell for参数 http://www.linuxidc.com/Linux/2013-07/87335.htm
Linux/Unix Shell 参数传递到SQL脚本 http://www.linuxidc.com/Linux/2013-03/80568.htm
Shell脚本中参数传递方法介绍 http://www.linuxidc.com/Linux/2012-08/69155.htm
Shell脚本传递命令行参数 http://www.linuxidc.com/Linux/2012-01/52192.htm
