gpt4 book ai didi

linux - 在另一个环境中解析环境

转载 作者:太空宇宙 更新时间:2023-11-04 10:40:07 24 4
gpt4 key购买 nike

所以我想打印包含其他变量的环境变量。例如我有:

MY_VARS="My var are:\nVAR1 = ${MY_VAR1}\nVAR2 = ${MY_VAR2}"
MY_VAR1=var1
MY_VAR2=var2

我想通过以下方式使之成为可能:

printf "${MY_VARS}" > my.conf

printf "$(echo ${MY_VARS})" > my.conf

my.conf 文件中获取某物:

My var are:
VAR1 = var1
VAR2 = var2

但它确实有效。有可能做这样的事情吗?我需要它与 Kubernetes 一起使用,这样我就可以在我的 ReplicationController 中设置 env 并将它与 Kubernetes envs 一起使用,例如 SERVICE_HOSTSERVICE_PORT还有一个问题是 Kubernetes 正在将我的 MY_VARS 变量更改为容器内的多行,因此它看起来像:

MY_VARS=My var are:
VAR1 = ${MY_VAR1}
VAR2 = ${MY_VAR2}

希望它很清楚:)

我的解决方案:

while read -r line
do
printf "$line\n" >> conf.tmp
done <<< "$CONFIG"

while read -r line
do
eval echo $line >> conf
done < conf.tmp

我将 CONFIG 变量传递给容器,该变量包含带有 IP 和端口的 Kubernetes 服务变量。我不得不进行两次,因为 eval 无法解析 \n

最佳答案

使用 bash 你可以执行 indirect references但它不会直接替换变量的值,只有当您从 bash 终端使用它时。

关于linux - 在另一个环境中解析环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35502988/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com