foreman
kann .env-Dateien lesen und Umgebungsvariablen aus dem Inhalt festlegen und dann ein Programm ausführen
z.B foreman run -e vars.env myprogram
... aber es macht eine Menge anderer Dinge (und befasst sich hauptsächlich mit dem Starten von Dingen unter Verwendung des Procfile-Formats).
Gibt es ein einfacheres Tool (Linux / Unix), das sich nur darauf konzentriert, ENV-Dateien zu lesen und einen Befehl in der neuen Umgebung auszuführen?
Beispiel für eine Umgebungsdatei (von http://ddollar.github.io/foreman/#ENVIRONMENT ):
FOO=bar
BAZ=qux
linux
unix
environment-variables
wodow
quelle
quelle
bash .env
odersh .env
kann arbeiten?Antworten:
Sie können die Umgebungsdatei in der aktiven Shell als Quelle angeben und das Programm ausführen:
Der
-a
Schalter exportiert alle Variablen, so dass sie dem Programm zur Verfügung stehen.quelle
bash -ac 'source .env && ./program'
Eine andere Alternative ist
envdir
:quelle
envdir
,runit
undchpst
; Die Fähigkeit, Umgebungsvariablen zu ändern, spiegelt sich im Status des ausgeführten Prozesses wider. Der Beitrag handelt von Docker, ist aber nicht auf Docker beschränkt. blog.ghaering.de/post/docker-as-vm [archive.org: web.archive.org/web/20190321165332/https://blog.ghaering.de/… ]Ich habe es versucht
source .env
und es hat wie ein Zauber funktioniert. Leider hat keine der anderen hier veröffentlichten Lösungen für mich funktioniert.quelle
Das funktioniert:
prüft aber offensichtlich nicht das Format der
.env
Datei auf Richtigkeit, was ein Hilfsprogramm tun würde.quelle
cat
ist nicht nötig, schreibe einfachtr "\\n" " " < .env
2) Dies bricht ab, wenn mehrzeilige Zuordnungen verwendet werden.