Shell面试题更新 2026-08-05

请说明在 Shell 脚本中完成文件读取与写入的具体实现方式,包括常用命令和操作要点。

编码实现技术原理Shell

考察说明

考查Shell脚本中文件I/O的基本操作能力。

回答思路

  1. 【回答框架 1】读取文件常用 cat、less、more、head、tail、grep、awk、sed 等命令;按行读取可用 while read line 循环,注意与管道结合时子 Shell 环境变量不生效的问题。
  2. 【回答框架 2】写入文件时,> 覆盖写,>> 追加写;配合 echo、printf 或 heredoc 生成内容;重定向可将标准输出、标准错误分别重定向。
  3. 【回答框架 3】文件描述符操作:exec 可打开指定文件描述符,用于输入输出;文件锁使用 flock 防止并发写冲突。
  4. 【回答框架 4】处理大文件时避免使用 cat 整体读入,应按行流式处理;写入前检查目标目录可写性及文件大小。
  5. 【回答框架 5】基于不同脚本场景选择方案:配置读写用 sed 替换,日志追加用 >>,临时文件用 mktemp。
  6. 【关键点 1】> 覆盖写,>> 追加写
  7. 【关键点 2】while read 按行读,注意管道子 Shell 作用域
  8. 【关键点 3】heredoc 用于多行内容生成
  9. 【关键点 4】flock 实现文件锁避免并发问题
  10. 【关键点 5】大文件流式处理避免整读
  11. 【易错点 1】使用 while read 配合管道时变量赋值无法保留
  12. 【易错点 2】未检查文件权限而直接读写
  13. 【易错点 3】忘记重定向标准错误导致错误信息丢失