【问题标题】:Can't do arithmetic operation in bash无法在 bash 中进行算术运算
【发布时间】:2019-04-30 14:19:42
【问题描述】:

我正在尝试执行以下操作:

size=$(curl -sI "https://stackoverflow.com/posts/0/editor-heartbeat/ask" | grep -i Content-Length | awk '{print $2}')
echo $((size / 3))

但这会返回错误:

")syntax error: invalid arithmetic operator (error token is "

我猜这与awk的结果有关。

提前谢谢你。

【问题讨论】:

  • 为什么不在管道末尾的awk 中进行算术运算?
  • curl -sI "https://stackoverflow.com/posts/0/editor-heartbeat/ask" | awk '/Content-Length/{print $2/3; exit}'
  • echo "size=${size}ZZZ" 在您的计算之前确保只有数值保存到$size。祝你好运。

标签: bash curl awk


【解决方案1】:

这是我之前在另一个线程中选择的一个有用的除法函数:

calc() {
awk "BEGIN { print "$*" }";
}

最终结果:

calc() {
awk "BEGIN { print "$*" }";
}
size=$(curl -sI "https://stackoverflow.com/posts/0/editor-heartbeat/ask" | grep -i Content-Length | awk '{print $2}')
echo "$(calc ${size}/3)"

执行:

ivo@spain-nuc-03:~/Downloads/TestStackoverflow$ ./processing.sh 
18758.3
ivo@spain-nuc-03:~/Downloads/TestStackoverflow$ 

希望对你有帮助!

【讨论】:

    【解决方案2】:

    从大小中去掉回车\r

    size=${size%$'\r'}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-14
      • 1970-01-01
      • 2018-08-17
      • 2021-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多