1.常用二次元比较操作符知识

我们也可以通过man test查看

提示:

(1) ">"和"<"符号,在单括中需要转义,在双中括号中不需要转义,因为在linux系统中">"和"<"也做重定向使用。

[root@shellbiancheng ~]# a=3
[root@shellbiancheng ~]# b=2
[root@shellbiancheng ~]# [ $a \> $b ]&& echo 0
0
[root@shellbiancheng ~]# [ $a > $b ]&& echo 0||echo 1 
0
[root@shellbiancheng ~]# [ $a -gt $b ]&& echo 0||echo 1 
0
[root@shellbiancheng ~]# [[ $a > $b ]]&& echo 0||echo 1  

(2) "="和"!="符号在[]中括号和双中括号中不需要转义。

[root@shellbiancheng ~]# c=3
[root@shellbiancheng ~]# d=3
[root@shellbiancheng ~]# [ $c = $d ]&&echo 0
0
[root@shellbiancheng ~]# [[ $c = $d ]]&&echo 0
0

2.范例:二次数字比较

实际测试结果结论:

(1)[]中括号中用>(大于号)和<(小于号)比较,比较符号需要转义。

(2) 必须是两个整数作比较,不是会报错。

(3) 在中括号中推荐使用-eq这种比较方法。

(4)[[ ]]用">"写法也可能不对只比较第一位逻辑结果不对,所以推荐使用-eq的方法和双括号的方法。

3.总结

(1)工作场景:整数比较推荐使用[ ]中括号的-eq的用法。

(2)[ $num –eq $num2 ] 注意空格,和比较符号。

(3)(($num1>$num2)) 无需空格,常规数学比较符号。

(4)整数比较不用加双引号。

系统脚本例子grep –w "\-eq" /etc/init.d/nfs