在shell脚本中舍入整数

时间:2012-02-01 06:59:50

标签: shell

我在shell脚本中都是新的,因此有一个关于如何舍入整数的问题。

以下是keke(smstools3开发人员)

的脚本代码行
  balance=$(substr "$result" "$balance_prefix" "$balance_suffix")

我的余额为111.12,我希望将其整理好。

我试过

    balance1=$(substr "$result" "$balance_prefix" "$balance_suffix")
    balance=$("%0.f\n" "$balance1")

    balance1=$(substr "$result" "$balance_prefix" "$balance_suffix")
    balance=$(ceil($balance1))

两者都是在谷歌之后引用一些答案,我甚至不知道语法是否正确。当然两个例子都返回空白。

任何提示或建议?谢谢。

编辑:

# Check that required words exists:
if [[ "$result" == *${balance_prefix}* ]] && \
   [[ "$result" == *${balance_suffix}* ]]
then
  # Get the balance and check it:
  balance=$(substr "$result" "$balance_prefix" "$balance_suffix")
  balance_low=0

  if [ $(expr "$balance" + 1 2> /dev/null) ]; then
    [ $balance -le $alert_balance ] && balance_low=1
  else
    echo "Error while parsing an integer: $balance"
  fi
else
  echo "Error while parsing the answer (balance): $result"
fi

来源:http://smstools3.kekekasvi.com/topic.php?id=320

2 个答案:

答案 0 :(得分:1)

balance=`python -c  "from math import ceil; print(ceil($balance1))"`

balance=`perl -MPOSIX -e "print ceil($balance1)"`

答案 1 :(得分:1)

仅使用最少的标准工具(perl和python非常常见):

balance=$(echo "x=${balance1}; scale=0; xx=x/1; if(x>xx) xx+=1; print xx"|bc -l)