首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导出停靠库运行中的变量列表

导出停靠库运行中的变量列表
EN

Stack Overflow用户
提问于 2020-09-03 20:33:28
回答 1查看 200关注 0票数 1

我们在env文件中有一组变量,如下所示

examples.env

代码语言:javascript
复制
A="/path1"
B="/path2":$A

现在,由于$B的局限性,docker不能替代/path/path1

因此,我希望在launcher脚本中导出变量,然后使用-e标志调用这些变量,如下所示

mydocker.sh

代码语言:javascript
复制
input="examples.env"
while IFS= read -r line
do
  export $line
done < "$input"

docker run --rm -e <Some code> centos8

现在,如何创建docker命令来获取所有变量?

下面的docker命令可以运行docker run --rm -e A -e B centos8,但是如果examples.env文件中的变量数未知,那么如何生成examples.env运行命令?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-07 10:08:06

将变量文件来源于mydocker.sh脚本中的export,并将每个变量与--env连接起来,并将连接的字符串转换为变量,以便对变量进行解释。

下面是一个示例:

代码语言:javascript
复制
# Source the variables file so they will be available in current script.
. ./examples.env
# Define docker env string it will lokk like below:.
# --env A=/path1 --env B=/path1/path2
dockerenv=""
input="examples.env"
while IFS= read -r line
do
    dockerenv="${dockerenv} --env $line"
done < "$input"
# Evaluate the env string so the variables in it will be interpreted
dockerenv=$(eval echo $dockerenv)

docker run --rm $dockerenv centos8

附注:

您需要--env insted of -e becouse -e将被解释为echo命令参数。

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

https://stackoverflow.com/questions/63731260

复制
相关文章

相似问题

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