本文详解 bash 中 `while read` 与 `for` 嵌套时常见的语法错误(如 `do` 位置错误),并提供可直接运行的 html 表格生成脚本,涵盖字段分隔、空行处理及基础 html 结构规范。
Bash 脚本中构建 HTML 表格是自动化数据展示的常见需求,但语法细节极易出错。你遇到的 syntax error near unexpected token 'echo' 错误,根本原因在于 while 语句后 do 关键字必须与 while 在同一行或紧随其后(换行后不可有空格/制表符干扰),而原代码将 do 单独写在下一行且缩进,导致 Shell 解析器误判语法结构。
✅ 正确写法(推荐风格,清晰且符合 POSIX):
file="output.html" # 写入 HTML 表格头部 echo "
| $escaped | " >> "$file" done echo "
⚠️ 关键注意事项:
while IFS=',' read -r nome eta materia; do
echo "$nome $eta $materia " >> "$file"
done < alunni.txt? 小结:Bash 写 HTML 的核心是「语法严谨 + 数据清洗 + 最小化转义」。修复 do 位置只是起点,真正健壮的脚本还需处理空行、特殊字符和字段边界——以上模板已覆盖这些关键点,可直接扩展使用。