# 写一个脚本 读取下面的文件内容 算出所有人的年龄总和
cat stu.txt
kk 18
ld 20
wubai 33
zls 22
wjy 23
############ 方法一 ################
[root@giao ~]# vim 6.sh
#!/bin/bash
# 总人数
overall=0
yersall=0
for x in `grep -Eo '[0-9]+' stu.txt`;do
yersall=$((yersall+x))
((overall++))
done
#计算平均年龄
average=`awk "BEGIN{print $yersall / $overall}"`
# 打印
echo "总年龄: $yersall"
echo "总人数位: $overall"
echo "平均年龄为:$average"
########### 方法二 #########
#!/bin/bash
# 初始化总和变量
total_age=0
g=0
# 读取文件 stu.txt 的每一行
while read -r name age; do
# 将当前行的年龄加到总和变量中
total_age=$((total_age + age))
((g++))
done < stu.txt
# 输出总和
echo "Total age: $total_age"
###### 方法三 ########## 必须用bash执行
#!/bin/bash
ages=0
num=0
# 使用 process substitution 以避免子 shell 问题
while read line; do
ages=$((ages + line))
num=$((num + 1))
done < <(grep -Eo '[0-9]+' 1.txt)
echo "Total ages: $ages"
echo "Number of ages: $num"
# 使用while循环从1加到100
#!/bin/bash
o=0
for i in `seq 100` ;do
o=$((o+i))
done
echo $o
o=0
for ((i=1;i<=100;i++));do
o=$((o+i))
done
echo $o