for 循环中的求和和计数

mar*_*rzo 2 shell-script files for

我有五个文件,每个文件的第一行都有一个数字。

我正在尝试编写一个包含 for 循环的 bash 脚本,该脚本可以计算文件的数量(计数)以及文件中的数字总和。

这是我到目前为止所尝试的:

for file in $* 
do
        $[head -1 $file] 
        echo $(head -1) 
done
Run Code Online (Sandbox Code Playgroud)

我还不确定如何合并求和和计数元素。

小智 6

我想你想要做的事情可以通过以下方式实现:

#!/bin/bash
sum=0
count=0
for file in "$@"
do
        number=$(head -1 "$file")
        count=$((count + 1))
        sum=$((sum + number))
done
echo "The sum of the $count file(s) is: $sum"
Run Code Online (Sandbox Code Playgroud)

您只需添加变量来存储您正在使用的文件的sum和。然后,每次运行循环时count都会增加。count我们还将number文件开头行添加到我们的sum- 变量中。

  • 这不起作用,然后有一个管道。例如:`ls *.count | 读取文件时` (3认同)