0

0

如何用 Bash 脚本安全高效地将文本文件生成 HTML 表格

心靈之曲

心靈之曲

发布时间:2026-01-06 19:25:25

|

950人浏览过

|

来源于php中文网

原创

如何用 Bash 脚本安全高效地将文本文件生成 HTML 表格

本文详解 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 "<table border='1'>" > "$file"

while IFS= read -r row; do
    # 跳过空行和纯空白行
    [[ -z "${row//[$' \t\n\r']/}" ]] && continue
    echo "<tr>" >> "$file"

    # 按空白符(空格/Tab)分割字段;如需按逗号分隔,请改用 IFS=',' read -ra fields <<< "$row"
    for valore in $row; do
        # 对特殊字符简单转义(防止 XSS 或破坏 HTML 结构)
        escaped=$(printf '%s' "$valore" | sed 's/&/\&/g; s/</</g; s/>/>/g; s/"/"/g')
        echo "<td>$escaped</td>" >> "$file"
    done

    echo "</tr>" >> "$file"
done < alunni.txt

# 表格闭合
echo "</table>" >> "$file"

⚠️ 关键注意事项:

AI角色脑洞生成器
AI角色脑洞生成器

一键打造完整角色设定,轻松创造专属小说漫画游戏角色背景故事

下载
  • IFS= 和 -r 必须搭配 read 使用:IFS= 防止行首尾空格被截断,-r 避免反斜杠转义干扰原始内容;
  • 变量引用务必加双引号:如 "$file",否则含空格路径会报错;
  • 字段分割逻辑需匹配数据格式:示例中 $row 直接展开依赖空白分隔;若 alunni.txt 是 CSV(如 Alice,18,Math),应改用:
    while IFS=',' read -r nome eta materia; do
        echo "<tr><td>$nome</td><td>$eta</td><td>$materia</td></tr>" >> "$file"
    done < alunni.txt
  • HTML 安全性:生产环境建议用专用工具(如 csvkit 或 Python 的 pandas.DataFrame.to_html()),纯 Bash 仅适合可信、简单数据。

? 小结:Bash 写 HTML 的核心是「语法严谨 + 数据清洗 + 最小化转义」。修复 do 位置只是起点,真正健壮的脚本还需处理空行、特殊字符和字段边界——以上模板已覆盖这些关键点,可直接扩展使用。

立即学习前端免费学习笔记(深入)”;

相关文章

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python 时间序列分析与预测
Python 时间序列分析与预测

本专题专注讲解 Python 在时间序列数据处理与预测建模中的实战技巧,涵盖时间索引处理、周期性与趋势分解、平稳性检测、ARIMA/SARIMA 模型构建、预测误差评估,以及基于实际业务场景的时间序列项目实操,帮助学习者掌握从数据预处理到模型预测的完整时序分析能力。

76

2025.12.04

Python 数据清洗与预处理实战
Python 数据清洗与预处理实战

本专题系统讲解 Python 在数据清洗与预处理中的核心技术,包括使用 Pandas 进行缺失值处理、异常值检测、数据格式化、特征工程与数据转换,结合 NumPy 高效处理大规模数据。通过实战案例,帮助学习者掌握 如何处理混乱、不完整数据,为后续数据分析与机器学习模型训练打下坚实基础。

12

2026.01.31

while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

104

2023.09.25

scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

411

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

368

2023.10.25

登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

6511

2023.09.14

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

840

2023.09.14

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

1088

2023.12.21

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

3

2026.03.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.5万人学习

Django 教程
Django 教程

共28课时 | 4.7万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号