bash 输入:
if [[ 167 > 10800 ]]
then
echo "I can't compare"
fi
bash 输出:
I can't compare
我想这个问题很明显……
答案1
引用bash(1)
手册页:
当与 [[ 一起使用时,< 和 > 运算符使用当前语言环境按字典顺序排序。
因此 167 确实大于 10800,因为 6 是一个比 0 更大的 ASCII 字符。
答案2
该>
字符不适用于您想要的比较类型。您必须使用-gt
:
if [[ 167 -gt 10800 ]]
then
echo "I can't compare"
fi
如果你想做一个小于比较,你需要做-lt
。要查看你需要做哪些其他比较选项,请查看test
手册页。
答案3
使用弧形括号进行真正的数字比较
if (( 167 > 10800 ))
then
echo "I can't compare"
fi