#!/bin/bash # 自动生成.env文件对应的.env.example文件 generate_env_example() { # 清空原有的.env.example文件中的内容 > .env.example # 逐行读取.env文件 while IFS= read -r line; do # 去除首尾空格 line=$(echo "$line" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//') # 如果是注释行或空白行,直接写入.env.example文件 if [[ $line == \#* || -z $line ]]; then echo "$line" >> .env.example # 如果是键值对行,判断键名是否包含指定字符串 elif [[ $line == *=* ]]; then key=$(echo "$line" | cut -d= -f1) value=$(echo "$line" | cut -d= -f2-) # 如果键名包含指定字符串,将值清空写入.env.example文件 if [[ $key == *KEY || $key == *PASSWORD* || $key == *SECRET* || $key == *PASS || $key == *TOKEN || $key == *ID ]]; then echo "$key=" >> .env.example # 否则,清除首尾空格后原样写入.env.example文件 else echo "$key=$value" >> .env.example fi fi done < .env } # 每次run后都自动生成.env.example文件 generate_env_example