MST

星途 面试题库

面试题:Bash循环中的复杂条件判断

编写一个Bash脚本,使用while循环遍历一个文件列表(假设文件列表存储在一个数组中),只有当文件是普通文件且文件大小大于10KB时,才将文件名输出到一个新的文件中,并在脚本中展示如何处理循环过程中的错误。
14.5万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
#!/bin/bash

# 假设文件列表存储在数组中
file_array=("file1.txt" "file2.txt" "file3.txt")

output_file="output.txt"

# 初始化循环变量
index=0

while [ $index -lt ${#file_array[@]} ]; do
    file=${file_array[$index]}

    # 检查文件是否存在且是普通文件
    if [ -f "$file" ]; then
        # 获取文件大小(单位:字节)
        file_size=$(stat -c%s "$file")

        # 检查文件大小是否大于10KB(10240字节)
        if [ $file_size -gt 10240 ]; then
            echo "$file" >> $output_file
        fi
    else
        echo "Error: $file 不是普通文件或不存在"
    fi

    # 增加循环变量
    ((index++))
done