foreman
peut lire des fichiers .env et définir des variables d'environnement à partir du contenu, puis exécuter un programme
par exemple foreman run -e vars.env myprogram
... mais il fait beaucoup d'autres choses (et est principalement concerné par le démarrage des choses en utilisant son format Procfile).
Existe-t-il un outil plus simple (Linux / Unix) qui se concentre uniquement sur la lecture des fichiers .env et l'exécution d'une commande avec le nouvel environnement?
Exemple de fichier d'environnement (depuis http://ddollar.github.io/foreman/#ENVIRONMENT ):
FOO=bar
BAZ=qux
bash .env
ou jesh .env
peux travailler?Réponses:
Vous pouvez source le fichier d'environnement dans le shell actif et exécuter le programme:
Le
-a
commutateur exporte toutes les variables, afin qu'elles soient disponibles pour le programme.la source
bash -ac 'source .env && ./program'
Une autre alternative est
envdir
:la source
envdir
,runit
etchpst
; à savoir la capacité à avoir changé les vars env se reflètent dans l'état du processus en cours d'exécution. Le message concerne le docker, mais il ne se limite pas au docker. blog.ghaering.de/post/docker-as-vm [archive.org: web.archive.org/web/20190321165332/https://blog.ghaering.de/… ]J'ai essayé
source .env
et cela a fonctionné comme un charme. Malheureusement, aucune des autres solutions publiées ici n'a fonctionné pour moi.la source
Cela marche:
mais évidemment ne vérifie pas l'
.env
exactitude du format du fichier, ce qu'un programme utilitaire ferait.la source
cat
n'est pas nécessaire, il suffit d'écriretr "\\n" " " < .env
2) Cela casse si des affectations multilignes sont utilisées.