bash|bash [[]] [] {} () 区别
()和{}都是把命令组合一起,形成一个命令组。区别是()是起子进程,而{}是当前进程,尤其在命令组中赋值非常重要。 另外一个区别就是{}中两边要有空格,并且每条命令带;比如:{ commanda;
commandb;
}
[]和test命令一样,可以用来比较数值,字符或者判断:
[ "$var" = 123 ] 判断是否是字符串123[[]]可以认为是[]的增强版。可以将多个命令组合起来,比如:
[ "$var" -eq 123 ] 判断是否是数字123
[ -e "$var" ] 判断是否文件存在
[[ "$var1" = "$var2" ]] && echo "0" || echo "1"
区别
数字测试: -eq -ne -lt -le -gt -ge,[[ ]]同 [ ]一致【bash|bash [[]] [] {} () 区别】(()) 数值计算
文件测试: -r、-l、-w、-x、-f、-d、-s、-nt、-ot,[[ ]]同 [ ]一致
字符串测试: > < =(同==) != -n -z,不可使用“<=”和“>=”,[[ ]]同 [ ]一致,但在[]中,>和<必须使用\进行转义,即>和<
逻辑测试: []为 -a -o ! [[ ]] 为&& || !
数学运算: [] 不可以使用 [[ ]]可以使用+ - * / %
组合: 均可用各自逻辑符号连接的数字(运算)测试、文件测试、字符测试
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 急于表达——往往欲速则不达
- 第三节|第三节 快乐和幸福(12)
- 20170612时间和注意力开销记录
- Shell-Bash变量与运算符
- 2.6|2.6 Photoshop操作步骤的撤消和重做 [Ps教程]
- 对称加密和非对称加密的区别
- 眼光要放高远
- 樱花雨
- 前任