用 Bash 逐行读取文件

在循环中处理每一行,且不丢失空白、不解释转义。

macOSBash 脚本Shell脚本低风险
使用 while IFS= read -r line; do ...; done < 文件,逐行遍历。

01命令

命令
$ while IFS= read -r line; do printf "%s\n" "$line"; done < file.txt

02作用说明

IFS= read -r 的组合会保留首尾空白并把反斜杠按字面处理,正是处理日志或配置所需。用 < 重定向(而非管道)喂入文件可让循环留在当前 shell,变量得以保留。

03风险

风险低风险
使用条件macOS default zsh/bash (bash 3.2+; some features need bash 4+ via Homebrew)
系统兼容性macOS with bash 3.2+ (GNU bash 4+ via Homebrew for advanced features)
!注意: 用管道而非重定向会让循环在子 shell 中运行,变量赋值会丢失。

04撤销

✓无需撤销——该命令不会改变持久状态。

05来源

最后验证: 2026-10-13 · 分类: 开发者