用 Bash 逐行读取文件
在循环中处理每一行,且不丢失空白、不解释转义。
使用 while IFS= read -r line; do ...; done < 文件,逐行遍历。
01命令
命令
$ while IFS= read -r line; do printf "%s\n" "$line"; done < file.txt02作用说明
IFS= read -r 的组合会保留首尾空白并把反斜杠按字面处理,正是处理日志或配置所需。用 < 重定向(而非管道)喂入文件可让循环留在当前 shell,变量得以保留。
03风险
!注意: 用管道而非重定向会让循环在子 shell 中运行,变量赋值会丢失。
04撤销
✓无需撤销——该命令不会改变持久状态。
05来源
- bash.1.en.html manual page依据: The bash manual page documents the read builtin.
最后验证: 2026-10-13 · 分类: 开发者