#!/bin/bash
# 模块:计算总和
calculate_sum() {
local sum=0
while read -r num; do
((sum += num))
done < "$1"
echo "$sum"
}
# 模块:计算平均值
calculate_average() {
local sum=$(calculate_sum "$1")
local count=$(wc -l < "$1")
if ((count > 0)); then
bc -l <<< "scale=2; $sum / $count"
else
echo "0.00"
fi
}
# 模块:计算最大值
calculate_max() {
local max=0
local first=true
while read -r num; do
if $first; then
max=$num
first=false
else
((num > max)) && max=$num
fi
done < "$1"
echo "$max"
}
# 模块:计算最小值
calculate_min() {
local min=0
local first=true
while read -r num; do
if $first; then
min=$num
first=false
else
((num < min)) && min=$num
fi
done < "$1"
echo "$min"
}
# 主程序
if [ $# -ne 1 ]; then
echo "Usage: $0 <file_name>"
exit 1
fi
file="$1"
sum=$(calculate_sum "$file")
average=$(calculate_average "$file")
max=$(calculate_max "$file")
min=$(calculate_min "$file")
echo "总和: $sum"
echo "平均值: $average"
echo "最大值: $max"
echo "最小值: $min"