面试题答案
一键面试#!/bin/bash
# 函数:读取文件内容,返回数字数组
read_file() {
local file="$1"
local numbers=()
while IFS= read -r line; do
numbers+=("$line")
done < "$file"
echo "${numbers[@]}"
}
# 函数:计算数字数组的总和
sum_numbers() {
local numbers=("$@")
local sum=0
for num in "${numbers[@]}"; do
((sum += num))
done
echo "$sum"
}
file_path="your_file.txt"
nums=$(read_file "$file_path")
total=$(sum_numbers $nums)
echo "总和为: $total"
为了减少磁盘I/O操作次数,这里将文件一次性读取到内存数组中,后续操作在内存中完成。同时通过函数封装读取文件和计算总和的逻辑,实现复用。在实际使用中,将your_file.txt
替换为实际的文件名。