如何通过Shell脚本从用户输入更新.env文件中的特定域名内容
实现Shell脚本更新.env文件中的域名条目
以下是满足需求的Shell脚本,它会提示用户输入域名,然后自动更新.env文件里APP_HOST、API_HOST、MESH_HOST三行中的域名部分:
#!/bin/bash # 提示用户输入目标域名 read -p "请输入要替换的域名(例如:example.com): " NEW_DOMAIN # 检查用户是否输入了有效内容 if [[ -z "$NEW_DOMAIN" ]]; then echo "错误:域名不能为空,请重新运行脚本并输入有效域名。" exit 1 fi # 原地更新.env文件,同时创建备份文件.env.bak sed -i.bak -e '/^APP_HOST=/s/yourdomain.com/'"$NEW_DOMAIN"'/' \ -e '/^API_HOST=/s/yourdomain.com/'"$NEW_DOMAIN"'/' \ -e '/^MESH_HOST=/s/yourdomain.com/'"$NEW_DOMAIN"'/' .env # 提示操作完成 echo "已成功更新.env文件中的域名条目!" echo "原文件已备份为.env.bak"
关键部分说明
read -p:向用户显示提示信息并读取输入内容,存入NEW_DOMAIN变量- 空值检查:避免用户输入空域名导致无效替换
sed -i.bak:-i实现原地修改文件,.bak指定生成原文件备份(防止误操作丢失数据)- 多个
-e选项:分别针对三个HOST条目执行替换,正则/^APP_HOST=/确保只匹配指定前缀开头的行,避免误改其他内容
使用方法
- 将代码保存为
update_domain.sh - 赋予执行权限:
chmod +x update_domain.sh - 在.env文件所在目录运行脚本:
./update_domain.sh
内容的提问来源于stack exchange,提问作者Jordan Matthew Farmer
相关产品推荐
相关产品推荐

