bash - 如何在 BASH 的参数列表中转换命令的输出?
问题描述
那里
我需要将多个参数传递给一个docker
命令,但我希望以交互方式而不是手动构建这串参数。在我的具体问题中,我想获取这台机器中的所有环境变量并将它们中的每一个设置为build-arg
参数。
例如,如果环境变量是
ENV_VAR1=ENV_VALUE1
ENV_VAR2=ENV_VALUE2
ENV_VAR3=ENV_VALUE3
我想建立一个这样的字符串
docker build --build-arg ENV_VAR1=ENV_VALUE1 --build-arg ENV_VAR2=ENV_VALUE2 --build-arg ENV_VAR1=ENV_VALUE1 .`
我想知道如何将这种重复包装在类似这样的 bash 脚本中(请这只是一个伪代码):
docker build $(FOREACH get_output_of_env() AS $env DO `--build-arg $env` END) .
这有可能吗?
提前致谢
解决方案
使用数组:
dockerargs=()
for i in ENV_VAR1 ENV_VAR2 ENV_VAR3; do
dockerargs+=(--build-arg "$i=${!i}")
done
docker build "${dockerargs[@]}" ...
如果您真的想使用如何遍历 env并执行for i in $(compgen -e)
推荐阅读
- npm - npx create-react-app 未显示 webpack-dev-server 3.11.0 的最新碰撞
- javascript - 在 html 中添加火车游戏需要一点帮助
- heroku - 带有容器堆栈和 ENTRYPOINT 指令的 Heroku 继续使用“/bin/sh -c”运行
- python-3.x - 如何自定义匹配大熊猫数据框?
- c# - 为 2 个不同的外部应用程序创建 2 组 .Net C# 插件,这些应用程序除了命名空间外具有相同的 API
- swift - 在 Swift 中,什么是优雅的方式,或者是假的“类型双关语”
- java - 如何将变量从一种方法传递到另一种方法?
- sql - 获取字符串中的最高值数字
- javascript - 我不希望我的表单在提交后刷新
- python-3.x - 无法在 Azure 函数中运行 python 代码