在bash中验证金额

时间:2017-12-08 10:28:09

标签: bash if-statement sed

目前我正在编写一个脚本来检查金额是否高于另一个。

if [ "324,53" -gt "325,00" ]; then
  echo "Amount is higher!"
else
  echo "Amount is lower."
fi

显然我收到错误:“期望整数表达式”运行时。我尝试使用sed的/ [^ 0-9] * // g'`但我需要再次使用完整的数字以供进一步使用。问题是我不知道如何做到这一点的正确方法。有人可以提供一些建议吗?

1 个答案:

答案 0 :(得分:1)

Bash无法处理浮点数。您需要使用外部工具,例如bc,但您需要使用小数点,而不是逗号:

if (( $(bc <<< '324.53 > 325.00') )) ; then

bc在条件为真时打印1,在{0}为假时打印0$(...)获取命令的输出,(( ... ))将其解释为数字,对零返回false,对其他任何内容返回true。