将变量值注入占位符配置

时间:2013-11-27 09:40:15

标签: linux bash shell ubuntu debian

目标

使用单个命令运行文件,并使用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”

1 个答案:

答案 0 :(得分:0)

您可以使用此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"