如何用Bash脚本批量修改子文件夹下的YAML和Swagger YAML文件
Bash批量追加YAML文件内容实现方案
- 直接指定遍历
folder-1、folder-2两个目标目录,避免误操作其他目录 - 分别匹配环境配置YAML(dev/qa/prod.yaml)和swagger前缀的YAML文件
- 使用
>>重定向符实现内容追加,不会覆盖原有文件内容
可直接运行的完整脚本
#!/bin/bash # 定义需要追加的内容,可根据实际需求修改 ENV_YAML_CONTENT="dummy" SWAGGER_YAML_CONTENT="dummy" # 仅遍历指定的两个目标目录 for target_dir in folder-1 folder-2; do # 跳过不存在的目录避免报错 if [ ! -d "$target_dir" ]; then continue fi echo "处理目录: $target_dir" # 进入目标目录 cd "$target_dir" || exit # 给dev/qa/prod.yaml追加内容 for env_file in {dev,qa,prod}.yaml; do if [ -f "$env_file" ]; then echo "追加内容到环境配置文件: $env_file" echo "$ENV_YAML_CONTENT" >> "$env_file" fi done # 给swagger开头的YAML文件追加内容 for swagger_file in swagger*.yaml; do if [ -f "$swagger_file" ]; then echo "追加内容到Swagger文件: $swagger_file" echo "$SWAGGER_YAML_CONTENT" >> "$swagger_file" fi done # 返回上级目录 cd .. done echo "所有目标文件处理完成"
注意事项
- 运行前测试:可以先把
echo "$XXX_CONTENT" >> "$xxx_file"这行替换为echo "匹配到文件: $xxx_file",先运行确认匹配的文件符合预期,再改回实际追加逻辑,避免误操作 - YAML格式兼容:因为YAML对缩进敏感,如果你要追加的是多段YAML配置,注意提前调整好
ENV_YAML_CONTENT、SWAGGER_YAML_CONTENT里的缩进,避免追加后文件格式失效 - 权限问题:如果运行时提示无写入权限,给脚本加执行权限
chmod +x 你的脚本名.sh后再运行即可
内容的提问来源于stack exchange,提问作者Dnyaneshwar Jadhav
相关产品推荐
相关产品推荐

