Bash 脚本 - 6 > 50 是怎样的?

Bash 脚本 - 6 > 50 是怎样的?
if [[ 6 > 50 ]]; then
    echo "true"
fi

$ bash script.sh

我在这里遗漏了一些非常明显的东西。为什么6大于50?

** 编辑 **

我也在尝试解决

if [[ 6.5 > 50 ]]; then
    echo "true"
fi

答案1

如果需要比较浮点数,最简单的方法是调用 awk 或 bc 等外部工具

a=6.1
b=50
if [[ "$(echo "$a > $b" | bc)" -eq 1 ]]; then echo "a greater than b"; fi

答案2

如果您要比较整数,则使用

if [[ 6 -gt 50 ]]; then echo "true"; fi

否则因为 bash 无法处理浮点

if (( $(echo "6.5 > 50" | bc -l) )); then echo "true"; fi

答案3

您提供的[[ args ]]条件表达式,当你打算执行时算术评估它使用(( condition ))语法。

相关内容