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.htmShell for参数 http://www.linuxidc.com/Linux/2013-07/87335.htmLinux/Unix Shell 参数传递到SQL脚本 http://www.linuxidc.com/Linux/2013-03/80568.htmShell脚本中参数传递方法介绍 http://www.linuxidc.com/Linux/2012-08/69155.htmShell脚本传递命令行参数 http://www.linuxidc.com/Linux/2012-01/52192.htm