【发布时间】:2014-02-22 20:05:12
【问题描述】:
我正在尝试编写一个 bash 脚本来读取文件“names.txt”并计算人们的平均成绩。例如,names.txt 看起来像这样。
900706845 Harry Thompson 70 80 90
900897665 Roy Ludson 90 90 90
脚本应该读取该行,打印出该人的 ID#、三个测试分数的平均值和相应的字母等级。所以输出需要看起来像这样
900706845 80 B
900897665 90 A
这就是我所拥有的
#!/bin/bash
cat names.txt | while read x
do
$SUM=0; for i in 'names.txt'; do SUM=$(($SUM + $i));
done;
echo $SUM/3
done
我知道回声此时只会打印出平均值,但我试图在尝试其他部分之前至少让它计算平均值。婴儿步!
【问题讨论】:
-
一方面,
for循环并没有按照您的想法执行。试试:for i in 'names.txt'; do echo $i ; done看看它实际上做了什么。