【发布时间】:2021-05-13 11:41:03
【问题描述】:
我有一个值为 .env 的文件
export AB_EXPERIMENT_NAMES='{"consumer_estimated_delivery_charges_v1":"Delivery charge"}'
但是当我像下面这样运行它时,我得到了错误
export: not valid in this context: charge\"}\"'
export $(cat .env | xargs -0)
问题似乎出在Delivery charge 的空间中。
我该如何解决这个问题。
【问题讨论】:
-
你为什么使用
xargs?只要.env包含有效的shell 分配(顺便说一句,这不是 一个安全的假设),您就可以简单地获取它。. .env. -
我在dockerfile中使用它
RUN cd ${APP_DIR} && \ export $(cat .env | xargs -0) && \ mix local.hex --force && \ mix local.rebar --force -
@SahilPaudel,该上下文应该在您最初的问题陈述中。但它仍然不能解释你为什么使用混淆的
export $(cat .env | xargs -0)。这除了没有做任何有用的事情外,还涉及“对猫的无用使用”。你真的只运行cat .env | xargs -0并检查了输出吗?提示:export export AB_EXPERIMENT_NAMES...没有任何意义。 -
@SahilPaude,另一个提示:在交互式 zsh 会话中运行
set -x然后export "$(cat .env | xargs -0)"。请注意命令替换周围的双引号,以禁止对其输出进行分词。 -
@SahilPaudel:你的命令相当于
export $(xargs -0 /bin/echo <.env),所以为了看看效果,我建议你做一个普通的xargs -0 /bin/echo <.env来观察发生了什么。您将立即看到,为什么您的方法不起作用。问题是你为什么要用这种不寻常的方式来设置环境?这是一种编程挑战吗?
标签: docker environment-variables zsh cat