[] 与 [[]], -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码

你可能感兴趣的:(linux)