如何在MarkDown文件中正确执行Shell脚本获取动态组件版本
在Markdown中管理组件版本并动态获取版本的正确方法
Markdown是静态标记语言,本身无法执行Shell命令,直接把命令写在Markdown里只会被当成文本显示,没法自动获取动态版本。要实现需求,得借助脚本预先处理生成最终的静态Markdown文件,具体步骤如下:
1. 准备版本模板文件
创建一个模板文件(比如命名为version-template.md),把需要动态生成的版本用占位符代替,示例内容:
component1=1.2 components2=2.3 component3={{COMPONENT3_VERSION}}
2. 编写Shell脚本实现动态替换
创建一个Shell脚本(比如generate-version-md.sh),用来执行命令获取动态版本,再替换模板里的占位符:
#!/bin/bash # 动态提取component3的版本,优先用$(...)替代反引号,可读性更强 COMPONENT3_VERSION=$(grep 'App_Version' file1 | grep -oP '(?<==).*') # 处理file1,增加文件存在判断避免报错 if [ -f file1 ]; then rm -rf file1 fi # 替换模板占位符,生成最终的Markdown文件 sed "s/{{COMPONENT3_VERSION}}/$COMPONENT3_VERSION/" version-template.md > component-versions.md
3. 执行脚本生成最终文件
给脚本添加执行权限并运行,就能得到包含正确动态版本的Markdown文件:
chmod +x generate-version-md.sh ./generate-version-md.sh
注意事项
- 若需要每次获取最新版本,只需重新执行脚本即可更新Markdown文件;CI/CD场景可将脚本加入流水线自动生成。
- 直接在Markdown中写入Shell命令的方式不可行,所有Markdown渲染器都不会解析执行这些命令。
内容的提问来源于stack exchange,提问作者Ramesh Thiyagarajan
相关产品推荐
相关产品推荐

