首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >envsubst是否有转义字符?

envsubst是否有转义字符?
EN

Stack Overflow用户
提问于 2014-07-26 04:08:09
回答 7查看 21.1K关注 0票数 61

有没有办法防止envsubst替换$VARIABLE?例如,我希望是这样的:

代码语言:javascript
复制
export THIS=THAT
echo "dont substitute \\\$THIS" | envsubst

然后把它还回去

代码语言:javascript
复制
dont substitute $THIS

但我却得到了

代码语言:javascript
复制
dont substitute \THAT

是否有转义字符来执行此操作?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-07-26 04:36:50

代码语言:javascript
复制
export DOLLAR='$'

export THIS=THAT
echo '${DOLLAR}THIS' | envsubst

或者更清楚的是:

代码语言:javascript
复制
export THIS=THAT
echo '${DOLLAR}THIS' | DOLLAR='$' envsubst
票数 45
EN

Stack Overflow用户

发布于 2019-03-21 15:39:21

我的解决方法如下:

原始模板:

代码语言:javascript
复制
$change_this
$dont_change_this

编辑后的模板:

代码语言:javascript
复制
$change_this
§dont_change_this

现在您可以处理以下内容:

代码语言:javascript
复制
envsubst < $template | sed -e 's/§/$/g'

这取决于角色§不会出现在模板上的任何其他位置。您可以使用任何其他字符。

票数 14
EN

Stack Overflow用户

发布于 2020-04-17 04:51:53

代码语言:javascript
复制
$ echo $SHELL
/bin/bash
$ echo \$SHELL
$SHELL
$ echo \$SHELL | envsubst 
/bin/bash
$ echo \$\${q}SHELL | envsubst 
$SHELL

因此,执行$$允许您添加一个$字符。然后,只需“替换”不存在的变量(这里我使用的是${q},但也可以是像${my_empty_variable}这样更有意义的变量,您将最终得到所需的变量。

就像段落解决方案一样-你需要一些特别的东西-在这里...一个不存在的变量,比起对模板执行额外的sed,我更喜欢它。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24963705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档