本文详解 bash 中 while-read 循环生成 html 表格时常见的语法错误(如 `do` 位置错误),
提供可运行的修正代码,并补充引号保护、字段分隔、html 转义等生产级注意事项。
Bash 脚本中通过读取文本文件动态生成 HTML 表格是一种常见需求,但语法细节极易出错。你遇到的报错:
./table_html.csv: line 36: syntax error near unexpected token `echo'
根本原因是 do 关键字必须紧跟在 while 条件之后(同一行或紧随换行),不可前置换行或缩进。原始代码中 while read row do 被错误拆分为两行(while read row 换行后才写 do),导致 Shell 解析器无法识别循环结构,进而将后续 echo 误判为语法异常。
✅ 正确写法(do 紧跟 while 后):
file="output.html" echo "
| $escaped | " >> "$file" done echo "
⚠️ 关键注意事项:
立即学习“前端免费学习笔记(深入)”;
while IFS=',' read -r nome cognome eta; do
echo "$nome $cognome $eta " >> "$file"
done < alunni.txt