MST
星途 面试题库

面试题:Bash脚本的复杂逻辑与性能优化

假设存在一个非常大的文本文件(文件大小可能在GB级别),每行内容是一个数字。编写一个高效的Bash脚本,找出这些数字中的最大值和最小值,并计算所有数字的总和。在实现过程中,要充分考虑性能问题,尽量减少内存占用,同时确保脚本在不同的操作系统环境(如Linux、macOS)下都能稳定运行。
46.0万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
#!/bin/bash

max=
min=
sum=0

while read -r num; do
    if [ -z "$max" ] || (( num > max )); then
        max=$num
    fi
    if [ -z "$min" ] || (( num < min )); then
        min=$num
    fi
    sum=$((sum + num))
done < large_file.txt

echo "最大值: $max"
echo "最小值: $min"
echo "总和: $sum"

上述脚本通过while read -r逐行读取大文件,在读取过程中不断更新最大值、最小值并累加数字,从而在较低内存占用下实现计算要求,且可在Linux和macOS等不同操作系统下稳定运行。注意将large_file.txt替换为实际的大文本文件名。