目标
使用单个命令运行文件,并用shell脚本中定义的变量替换配置文件中的占位符变量。
要求
- 我不想获取配置文件的来源,因为我已经尝试过了,但它不起作用
- 用于任何占位符变量的单个命令(即本例中的用户名和密码)
当前尝试
部署.sh
USERNAME="tom"
PASSWORD="secret"
sed 's/$PLACEHOLDER_/$/g' test.conf
test.conf
deploy="$PLACEHOLDER_USERNAME"
credentials="$PLACEHOLDER_PASSWORD"
问题
- 目前,它将"$PLACEHOLDER_USERNAME"更改为"$USERNAME"
- 我希望它将"$PLACEHOLDER_USERNAME"更改为"tom"
您可以使用以下awk命令:
awk -F '[="]' 'FNR==NR {a["$PLACEHOLDER_" $1]=$3;next}
$3 in a {print $1 "="" a[$3] """}' deploy.sh test.conf
deploy="tom"
credentials="secret"