MST
星途 面试题库

面试题:Bash脚本的性能优化与函数复用

假设有一个文本文件,每行包含一个数字。编写一个Bash脚本,计算这些数字的总和,并输出结果。要求通过函数复用的方式,将读取文件和数字相加的操作分别封装成函数。同时,对脚本进行性能优化,例如减少磁盘I/O操作的次数。
26.7万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
#!/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替换为实际的文件名。