如何才能实现相当于将标准输出通过管道“导出”的功能?
对于背景,我有一个非 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