我们也可以通过man test查看
提示
(1) “<”符号是小于的意思,if[[ “$a”<”$b” ]], if[[ “$a”\<”$b” ]]。在单括号中需要转义,因为在shell也用<和>做重定向。
(2) “>”符号是大于的意思,if[[ “$a”> “$b” ]], if[[ “$a” \> “$b” ]]。在单括号中需要转义,因为在shell也用<和>重定向。
(3) “=”符号第等于的意思,if[[ “$a”=”$b” ]],if[[ “$a”=”$b”]]。在单[]中不需要转义。
特别提示:
“=”和”!=”在[]中使用不需要转义,包含”>”和”<”的符号在[]号中使用需要转义,对于数字不转义的结果未必会报错,但是结果可能不会对。
范例1:二次数字比较
实际测试结果结论:
(1)整数加双引号也是对的。
(2)[[ ]]用-eq等的写法也是对的,[[ ]]用>写法也可能不对,只比较第一位,逻辑结果不对。
(3)[ ]用>号的写法语法报错,逻辑结果不对。
工作场景:推荐[ ]的-eq的用法。
小结:整数比较推荐用法
[ $num –eq $num2 ] 注意空格,和比较符号。
(($num1>$num2)) 无需空格,常规数学比较符号。
整数比较可以加双引号也可以不加。
系统脚本例子grep –w “-eq”/etc/init.d/nfs
原文地址:http://blog.51cto.com/10642812/2084230