bash - 用作选项值的 Bash 进程替换
问题描述
我正在尝试运行
docker-compose --env-file <(cat file1.env <(echo -e "\n\n") file2.env) config
docker-compose
预计--env-file
是一个文件。我需要使用(连接)两个文件。
跑步docker-compose --env-file file_any.env config
效果很好。
单独运行cat file1.env <(echo -e "\n\n") file2.env
输出有效结果。
但它不知何故不适用于docker-compose
.
我究竟做错了什么?
解决方案
您不需要额外的流程替换。外部进程替换捕获它包装的所有命令的标准输出,因此您不限于单个cat
命令。
docker-compose --env-file <( cat file1.env; printf '\n\n'; cat file2.env) config
不幸docker-compose
的是,要求参数--env-file
是真实文件。参数的值直接传递给Environment.from_env_file
,它通过以下方式进行显式检查env_vars_from_file
:
def env_vars_from_file(filename, interpolate=True):
"""
Read in a line delimited file of environment variables.
"""
if not os.path.exists(filename):
raise EnvFileNotFound("Couldn't find env file: {}".format(filename))
elif not os.path.isfile(filename):
raise EnvFileNotFound("{} is not a file.".format(filename))
...
推荐阅读
- android - 如何用新文本替换软键盘输入连接文本
- sql - <<>> 运算符在 Athena SQL 中的含义
- kotlin - 在 Jetty 未按预期工作的情况下在 micronaut 上启用 HTTPS 支持
- python - 如何配置 Nginx 进行负载均衡
- powershell - 使用 PowerShell 在 IIS 中启用可选功能
- python - 了解 Python 内置函数如何映射到底层 C 实现
- linux - 错误“分段错误(核心转储)”是什么意思?
- python - Python Gsutil Google SDK 外壳
- php - Symfony\Component\HttpKernel\Exception\NotFoundHttpException
- sql - 如何在 `where` 条件下使用连接