stdout を 'export' にパイプするのと同等のことを行うにはどうすればよいでしょうか?
背景として、次のような環境変数を生成する非シェル スクリプトがあります。
DATABASE_URL='someurl'
MAIL_KEY='key'
REDIS_URL='redis connection string'
その出力を取得して、次のように実行したいと思います。
generate-env | xargs export
残念ながら、エクスポートはバイナリではなく、eval も同様です。出力をファイルに書き込んでソースで実行するのは避けたいのですが、これは可能なのでしょうか?
答え1
以下を使用できますeval
:
$ set -a
$ eval "$(command_that_generate_output)"
$ set +a
$ sh -c 'printf "%s\n" "$DATABASE_URL"'
someurl