Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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
Bash 尝试使用两个文件的内容获取平均值_Bash_Unix_Scripting - Fatal编程技术网

Bash 尝试使用两个文件的内容获取平均值

Bash 尝试使用两个文件的内容获取平均值,bash,unix,scripting,Bash,Unix,Scripting,因此,我的目录中有两个文件,每个文件中都包含一个数字。我想制作一个脚本来计算这两个数字的平均值。我该怎么写呢?这是正确的吗 avg=$((${<file1.txt}-${<file2.txt})/2) avg=$(${您需要使用: 但是,Bash是一种非常糟糕的数学语言(至少除非它是完全整数数学)。您可能需要研究bc或类似Python的“真实”语言。您的示例不起作用。此外,您的公式可能不正确。这里有两个选项,没有不必要的cat: avg=$(( (`<file1.txt` +

因此,我的目录中有两个文件,每个文件中都包含一个数字。我想制作一个脚本来计算这两个数字的平均值。我该怎么写呢?这是正确的吗

avg=$((${<file1.txt}-${<file2.txt})/2)
avg=$(${您需要使用:


但是,Bash是一种非常糟糕的数学语言(至少除非它是完全整数数学)。您可能需要研究
bc
或类似Python的“真实”语言。

您的示例不起作用。此外,您的公式可能不正确。这里有两个选项,没有不必要的
cat

avg=$(( (`<file1.txt` + `<file2.txt`) / 2 ))

更具体地说,这两个文件中的两个数字都是负数。我插入了您给我的第二个代码,它给了我一个语法错误,上面写着:算术运算符无效(错误标记为“.6892+-86.4149)/2”)。顺便说一句,这两个数字都是-79.6892和-86.4149。你知道这里出了什么问题吗?@Eric:语法结构
那么总体来说,这对代码来说可以吗?avg=bc很抱歉混淆了。当然,你必须将整个命令包装在
$()
中,这样最终的输出就会被捕获到你的变量
avg
中。
avg=$(( (`<file1.txt` + `<file2.txt`) / 2 ))
avg=$(( ($(<file1.txt) + $(<file2.txt)) / 2 ))
avg=$(bc <<< "( $(<file1.txt) + $(<file2.txt) ) / 2")
avg=$(echo "( $(<file1.txt) + $(<file2.txt) ) / 2" | bc)
avg=$(perl -e 'print( ($ARGV[0] + $ARGV[1]) / 2 )' -- $(<file1.txt) $(<file2.txt))