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