linux - 如何使用 bash 脚本计算平均值?

标签 linux bash shell math

我目前正在使用 C++ 进行一个小游戏卡项目,但我需要一些统计数据,在这里我想计算胜利前的回合数的平均值。我尝试用 bash 来做,但我有一点错误,而且我对 bash 还很陌生。

代码如下:

#!/bin/bash
i="1"
moyenne="1"

while [ $i -le 40 ]
do
    moyenne = $(($moyenne + ./a.out 2>&1 | tail -1))
    ((i++))
done

这是我的错误

./script.sh: line 7: 1 + ./a.out 2>&1 | tail -1: syntax error: operand expected (error token is "./a.out 2>&1 | tail -1")

最佳答案

两个问题:等号周围的空格——Bash 对此很敏感——以及你添加 (+) 两个操作数而不用 $() 求值的方式。

我不知道你的 a.out 返回了什么,但是用一个简单的 echo 1 代替它,加起来就是 41:

moyenne=$(($moyenne + $(echo 1 2>&1 | tail -1)))

关于linux - 如何使用 bash 脚本计算平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42988540/

相关文章:

linux - 这个错误是什么意思 : interpreter/lib/ld-linux-armhf. so.3error reading (Invalid argument)

bash - 如何以另一个用户身份登录,然后在 bash 脚本中注销?

linux - bash 脚本到 Windows cmd,带有嵌套命令

php - 由于蛋糕 shell ,CakePHP 2.x 警告 SplFileInfo

shell - 使用文件中的行作为 grep 的文件名?

linux - bash 在此 ssh 命令中做了什么?

c - 有没有办法知道Linux符号表中的条目是函数还是变量?

c - Linux 系统克隆。释放堆栈内存

c++ - v4l2 很简单的例子

bash - 编写 bash 脚本以接受来自所有可能方向的参数和输入的最简单方法是什么(类似于 sort -k1 -r)?