问题标签 [envsubst]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
22517 浏览

bash - envsubst 有转义字符吗?

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

并让它返回

但相反我得到

这样做有什么转义字符吗?

0 投票
1 回答
1723 浏览

environment-variables - 不能在 GitLab 环境变量中使用 `$$` 字符

不能$$在 GitLab CI 的环境变量中使用字符。

我将我的秘密存储在 GitLab CI 环境变量中,其中我的一个密码字符串末尾有 $$ 字符(例如:Ab1ab$$)。当我回显它或使用 envsubst 时,输出将是 Ab1ab$,最后去掉额外的 $。

我尝试使用将字符串包围在 '',"" 中,但都没有帮助。在 gitlab 社区上看到一些关于在 env 变量中使用 $ 字符的问题,但找不到任何解决我的确切问题的方法。

https://gitlab.com/gitlab-org/gitlab-ce/issues/27436

出口 VAR= 'Ab1ab$$' 回声 $VAR=Ab1ab$

0 投票
1 回答
640 浏览

linux - envsubst 仅适用于部分变量

我有一个包含一些 $VARIABLES 的文件,我想使用 envsubst 工具替换它。但在我的情况下,该工具仅替换了 +/- 一半的变量。

举例说明:我有一个带有一些变量的.env文件:

我用

现在,当两个变量都设置时,envsubst 只正确使用了 MODE

任何想法为什么 envsubst 不适用于所有变量?

0 投票
2 回答
240 浏览

bash - 替换文件中声明的环境变量的值

有一个文件env.sh,它定义了环境变量:

我想用 替换var1文件内部的值3,这样

有没有办法在没有字符串/正则表达式匹配魔法的情况下做到这一点?

我阅读了很多关于 的内容envsubst,但仍然无法弄清楚如何将其应用于任务。

0 投票
1 回答
575 浏览

linux - Usage of envsubst combined with tee randomly results in an empty file

I'm looking to understand what is going on in a simple script, that seems to produce random results.

What I am trying to do:

  • Replace variables in pre-existing files from the values defined in the environment.

  • This is done inside a Docker container with a bash script, that runs the command:

    envsubst '$VAR1 $VAR2' < $FILE | tee $FILE


What happens:

  • Sometimes a $FILE in question has contents before the command, but contains nothing after the command.

How to reproduce the issue:

  • Dockerfile:
  • Bash script:

Output looks something like this:

0 投票
0 回答
190 浏览

bash - 读取文件行时如何避免 shell 脚本中的 eval 控制台输出或日志(包含机密)?

可能是一个小的 shell 脚本问题:我试图避免将秘密值打印到控制台输出或日志。我必须逐行读取文件,然后替换每一行中的任何变量值并将输出写入新文件。

这是我要读写的代码,但问题是input.txt包含来自另一个系统的秘密变量或环境变量。

./environment 文件包含一些变量值。

这是 input.txt 的样子:

Colsole 日志:

但是控制台日志会打印包括秘密在内的所有内容。我知道这是因为我的代码中有回声,但我不知道这里的替代解决方案是什么。如果这个问题已经包含在另一个问题中,请指导我。

0 投票
0 回答
131 浏览

bash - 从管道输入到“kubectl”的奇怪行为

我正在尝试将环境变量替换为 .yaml 文件,并将生成的文件传递到kubectl

为什么会出现这个错误?

我从https://skofgar.ch/dev/2020/08/how-to-quickly-replace-environment-variables-in-a-file/获得了语法

调试

kubectl像这样工作正常:

并且替换工作正常:

(这与 pure.yaml 相同)

但命令失败:

现在原来的直接命令(以前有效)也失败了:

创建一个新的外壳,它将再次工作。

谁能解释这种奇怪的行为?接收标准输入是 bash 问题还是 kubectl 问题?

破解解决方案

什么是好的解决方法?我目前正在做:

……但感觉很丑。

0 投票
2 回答
2299 浏览

bash - kubectl应用时替换所有文件中的环境变量

假设我们在一个文件夹中有许多 Kubernetes 配置文件kubernetes,我们希望将它们全部应用:

其中一些文件包含需要首先替换的环境变量(Kubernetes 中没有模板)。例如,一些部署 yaml 包含如下内容:

对于单个 yaml 文件,这可以通过使用 envsubst 来完成,如下所示

对所有 yaml 文件进行这些替换的最佳方法是什么?

(遍历文件夹中的文件并按envsubst上述方式调用是一种选择,但我怀疑最好将整个文件夹传递给kubectl而不是单个文件)

0 投票
1 回答
97 浏览

bash - 在bash脚本中通过引用更新变量?

是否可以像在 C++ 中那样在 bash 脚本中通过引用来使用变量?

假设我有一个如下脚本:

即使 的值已从 更改为,您也会在上面的脚本echo "B is $B输出中看到。我知道重新分配会解决它。但我想知道是否有可能持有一个引用,以便在更新时立即更新它的值。这发生在没有重新分配的情况下。这可能吗?B is sayAsaysay itB=$ABABAB=$A

envsubstBash 中的惰性评估中了解到。是按照方法去做吗?

0 投票
1 回答
40 浏览

docker - 设置为在 docker 容器中运行的脚本也在主机上运行

所以我想做的是使用“COPY script.sh script.sh”(将脚本从主机复制到容器并执行)但是在容器中执行脚本时,似乎这个脚本也在主机上执行。

下面是 Dockerfile :

下面是 startup.sh,它替换了配置文件中的环境变量并启动了 kafka 服务,但是当在容器中运行时,这个脚本正在替换主机配置文件中的值:

码头工人撰写: