Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
shell脚本中的整数取整_Shell - Fatal编程技术网

shell脚本中的整数取整

shell脚本中的整数取整,shell,Shell,我对shell脚本一无所知,因此有一个关于如何取整整数的问题 下面是keke(smstools3开发人员)脚本中的一行代码 我的余额是111.12,我想把它加起来 我试过了 balance1=$(substr "$result" "$balance_prefix" "$balance_suffix") balance=$("%0.f\n" "$balance1") 或 这两个例子都引用了google it之后的一些答案,我甚至不知道语法是否正确。当然,这两个例子都返回空白 有什

我对shell脚本一无所知,因此有一个关于如何取整整数的问题

下面是keke(smstools3开发人员)脚本中的一行代码

我的余额是111.12,我想把它加起来

我试过了

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

这两个例子都引用了google it之后的一些答案,我甚至不知道语法是否正确。当然,这两个例子都返回空白

有什么提示或建议吗?谢谢

编辑:

资料来源:


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


balance=$(echo“x=${balance1};scale=0;xx=x/1;if(x>xx)xx+=1;打印xx”| bc-l)

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


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

您想将其取整为什么?请你再添加几个输入/输出示例以使其更清晰,好吗?@hendry谢谢你的回答。因为在脚本中,如果我的余额是十进制值,它将不会进行任何比较(例如,如果余额低于20,则发送警报消息),我会在我的问题中粘贴更多代码。我认为这些代码会分散我对“取整问题”的注意力。也许能解决问题。你想把它归纳成什么?请你再添加几个输入/输出示例以使其更清晰,好吗?@hendry谢谢你的回答。因为在脚本中,如果我的余额是十进制值,它将不会进行任何比较(例如,如果余额低于20,则发送警报消息),我会在我的问题中粘贴更多代码。我认为这些代码会分散我对“取整问题”的注意力。也许解决了问题。我很抱歉我的反应太晚。感谢你的回答,我尝试了,但它仍然返回空白结果。好吧,python对我不起作用,然而,perl做得很好。我很抱歉我的反应太晚。感谢你的回答,我尝试了,但它仍然返回空白结果。好吧,python对我不起作用,然而,perl做得很好。
    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
balance=`python -c  "from math import ceil; print(ceil($balance1))"`
balance=`perl -MPOSIX -e "print ceil($balance1)"`