当我跑步时
if [[ 10 < 2 ]];
then echo "yes";
else echo "no";
fi
在shell中,它返回yes
。为什么?应该是no
吗?
当我跑步时
if [[ 20 < 2 ]];
then echo "yes";
else echo "no";
fi
返回no
。
答案 0 :(得分:10)
因为您根据Lexicographical order比较字符串而不是数字
您可以使用[[ 10 -lt 2 ]]
和[[ 20 -lt 2 ]]
。 -lt
代表小于(<
)。对于大于(>
)-gt
表示法,可以使用。
在bash中,也可以使用双括号进行数值比较:
if ((10 < 2)); then echo "yes"; else echo "no"; fi
以上示例将回显no