从标准输出设置环境变量

从标准输出设置环境变量

如何才能实现相当于将标准输出通过管道“导出”的功能?

对于背景,我有一个非 shell 脚本,它生成环境变量,如下所示:

DATABASE_URL='someurl'
MAIL_KEY='key'
REDIS_URL='redis connection string'

我想获取该输出并执行它,例如: generate-env | xargs export

不幸的是,export 不是二进制文件,eval 也不是。我不希望将输出写入文件并使用 source 运行它。这可能吗?

答案1

您可以使用eval

$ set -a
$ eval "$(command_that_generate_output)"
$ set +a
$ sh -c 'printf "%s\n" "$DATABASE_URL"'
someurl

相关内容