J'ai un tmp.txt
fichier contenant des variables à exporter, par exemple:
a=123
b="hello world"
c="one more variable"
Comment puis-je exporter toutes ces variables à l'aide de la export
commande, afin qu'elles puissent ensuite être utilisées par des processus enfants?
.env
fichiers lorsque vous entrezcd
dans un répertoire.Réponses:
À en juger par votre autre question, vous ne voulez pas coder en dur les noms de variables:
Essaye-le:
la source
grep
pour ignorer les commentaires:export $(grep --regexp ^[A-Z] tmp.txt | cut -d= -f1)
set -a
fait que les variables¹ définies désormais soient automatiquement exportées. Il est disponible dans n'importe quel shell Bourne-like..
est le nom standard et Bourne pour lasource
commande, donc je la préfère pour la portabilité (source
vient decsh
et est maintenant disponible dans la plupart des shells Bourne-like modernes, mêmebash
si (avec parfois un comportement légèrement différent)).Dans les shells POSIX, vous pouvez également utiliser
set -o allexport
une méthode alternative plus descriptive pour l'écrire (set +o allexport
pour le désactiver).¹ Dans In
bash
, sachez que toutes les fonctions déclarées pendantallexport
leur activation sont également exportées vers l'environnement (carBASH_FUNC_myfunction%%
les variables d'environnement importées par tous lesbash
shells s'exécutent dans cet environnement, même lorsqu'elles s'exécutent en tant quesh
).la source
Il suffit de faire:
la source
set -a
serait beaucoup plus simple, mais cela fonctionne réellement.