Umgebungsvariablen von stdout festlegen

Umgebungsvariablen von stdout festlegen

Wie können Sie das Äquivalent zum Weiterleiten von stdout an „export“ erreichen?

Als Hintergrund habe ich ein Nicht-Shell-Skript, das Umgebungsvariablen wie folgt generiert:

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

Ich möchte diese Ausgabe nehmen und sie ausführen, etwa so: generate-env | xargs export

Leider ist export keine Binärdatei und eval auch nicht. Ich würde es vorziehen, meine Ausgabe nicht in eine Datei schreiben und sie mit der Quelle ausführen zu müssen. Ist das überhaupt möglich?

Antwort1

Sie können Folgendes verwenden eval:

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

verwandte Informationen