[] 与 [[]], -gt 与 > 的比较
[] 与 [[]], -gt 与 > 的比较
- [] 与 [[]]
- 1- [ 和 test 是Shell的内部命令
- 2- [[ 是Shell的关键字
- 3- 比较
- 4- 如判断a 不等于1 且 不等于2 的表达式为
- -gt >
- 1- -gt, -lt, -eq 运算符是用于整数之间比较的,
- 2- > < = 比较字符串
[] 与 [[]]
1- [ 和 test 是Shell的内部命令
[ 中使用 -a -o
2- [[ 是Shell的关键字
[[ 中使用 && ||
&& || < > 操作符能够正常存在于[[]] 条件判断结构中
3- 比较
[[]] | [] |
---|---|
> 排序比较 | 不支持 (仅部分shell解释器支持) |
&& 逻辑与 | -a 逻辑与 |
||逻辑或 | -o 逻辑或 |
== 模式匹配 | == 字符匹配 |
=~ 正则匹配 | 不支持 |
() 分组测试 | 仅部分shell解释器支持分组测试 |
4- 如判断a 不等于1 且 不等于2 的表达式为
用[[]]
如 if [[ $a != 1 && $a != 2 ]]
用[]
if [ $a -ne 1] && [ $a != 2 ]
if [ $a -ne 1 -a $a != 2 ]
-gt >
1- -gt, -lt, -eq 运算符是用于整数之间比较的,
也就是两个变量会转为整数再进行比较
但只能比较整数,如果非整数比较的话脚本将会报错.
可以使用以下代码进行转换为整数
number=$(printf "%.0f" $number)
2- > < = 比较字符串
也就是变量先转为字符串再比较ASCII码