我有一个脚本,它运行了我本地目录中的所有文件,并在我的terraform文件中找到关键字。我面临的问题是我无法替换文件中定义的变量。当I reference value被替换时,它会捕获$variable作为引用。举例来说:
Repository_Name="test"
grep -rl '#{RepositoryName}#' --include *.tf |
xargs gsed -i 's/#{RepositoryName}#/${Repository_Name}/g'
字符串
我也试过像下面的例子一样删除变量外的{},但仍然没有成功:
Repository_Name="test"
grep -rl '#{RepositoryName}#' --include *.tf |
xargs gsed -i 's/#{RepositoryName}#/$Repository_Name/g'
型
我通常得到的结果是:
RepositoryName = "$Repository_Name"
型
或者是
RepositoryName = "${Repository_Name}"
型
3条答案
按热度按时间vnzz0bqm1#
您需要
"
来计算变量字符串
如果您希望在文件中包含
{
,可能还需要额外的{
。4si2a6ki2#
其实sed就够了:
字符串
jutyujz03#
解决这个问题的办法
字符串
sed有焦痂并发症。
for reference