目标
使用单个命令运行文件,并将配置文件中的占位符变量替换为 shell 脚本中定义的变量。
要求
- 我不想获取配置文件,因为我已经尝试过但它不起作用。
- 适用于任何占位符变量(即本例中的用户名和密码)的单个命令
当前尝试
deploy.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"
关于linux - 将变量值注入(inject)占位符配置中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20238758/