问题标签 [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.
bash - envsubst 有转义字符吗?
有没有办法防止envsubst
替换 a $VARIABLE
?例如,我希望是这样的:
并让它返回
但相反我得到
这样做有什么转义字符吗?
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$
linux - envsubst 仅适用于部分变量
我有一个包含一些 $VARIABLES 的文件,我想使用 envsubst 工具替换它。但在我的情况下,该工具仅替换了 +/- 一半的变量。
举例说明:我有一个带有一些变量的.env文件:
我用
现在,当两个变量都设置时,envsubst 只正确使用了 MODE
任何想法为什么 envsubst 不适用于所有变量?
bash - 替换文件中声明的环境变量的值
有一个文件env.sh
,它定义了环境变量:
我想用 替换var1
文件内部的值3
,这样
有没有办法在没有字符串/正则表达式匹配魔法的情况下做到这一点?
我阅读了很多关于 的内容envsubst
,但仍然无法弄清楚如何将其应用于任务。
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:
bash - 读取文件行时如何避免 shell 脚本中的 eval 控制台输出或日志(包含机密)?
可能是一个小的 shell 脚本问题:我试图避免将秘密值打印到控制台输出或日志。我必须逐行读取文件,然后替换每一行中的任何变量值并将输出写入新文件。
这是我要读写的代码,但问题是input.txt
包含来自另一个系统的秘密变量或环境变量。
./environment 文件包含一些变量值。
这是 input.txt 的样子:
Colsole 日志:
但是控制台日志会打印包括秘密在内的所有内容。我知道这是因为我的代码中有回声,但我不知道这里的替代解决方案是什么。如果这个问题已经包含在另一个问题中,请指导我。
bash - 从管道输入到“kubectl”的奇怪行为
我正在尝试将环境变量替换为 .yaml 文件,并将生成的文件传递到kubectl
:
为什么会出现这个错误?
我从https://skofgar.ch/dev/2020/08/how-to-quickly-replace-environment-variables-in-a-file/获得了语法
调试
kubectl
像这样工作正常:
并且替换工作正常:
(这与 pure.yaml 相同)
但命令失败:
现在原来的直接命令(以前有效)也失败了:
创建一个新的外壳,它将再次工作。
谁能解释这种奇怪的行为?接收标准输入是 bash 问题还是 kubectl 问题?
破解解决方案
什么是好的解决方法?我目前正在做:
……但感觉很丑。
bash - 在bash脚本中通过引用更新变量?
是否可以像在 C++ 中那样在 bash 脚本中通过引用来使用变量?
假设我有一个如下脚本:
即使 的值已从 更改为,您也会在上面的脚本echo "B is $B
输出中看到。我知道重新分配会解决它。但我想知道是否有可能持有一个引用,以便在更新时立即更新它的值。这发生在没有重新分配的情况下。这可能吗?B is say
A
say
say it
B=$A
B
A
B
A
B=$A
我envsubst
从Bash 中的惰性评估中了解到。是按照方法去做吗?
docker - 设置为在 docker 容器中运行的脚本也在主机上运行
所以我想做的是使用“COPY script.sh script.sh”(将脚本从主机复制到容器并执行)但是在容器中执行脚本时,似乎这个脚本也在主机上执行。
下面是 Dockerfile :
下面是 startup.sh,它替换了配置文件中的环境变量并启动了 kafka 服务,但是当在容器中运行时,这个脚本正在替换主机配置文件中的值:
码头工人撰写: