J'ai écrit le script suivant pour définir certaines variables d'environnement lorsque cela est nécessaire.
#!/bin/sh
export BASE=/home/develop/trees
echo $BASE
export PATH=$PATH:$BASE
echo $PATH
Ci-dessous la commande et les résultats que je peux voir sur mon terminal: le script s'exécute, mais les variables ne sont pas définies à la fin.
~$: ./script.sh
/home/develop/trees
/bin:......:/home/develop/trees
~$: echo $BASE
~$:
Qu'est-ce qui ne va pas? Merci d'avance. Mirko
export
de transmettre des variables aux sous-shell, un sous-shell est une copie de votre shell actuel, y compris les variables et les fonctions, etc. Les variables exportées sont copiées dans les nouveaux processus générés à partir du shell, que ce processus soit un autre shell ou non. Deuxièmement,.
la commande POSIX pour le sourcing. Bash ajoutesource
un synonyme plus lisible, mais vous ne pouvez pas compter sur sa disponibilité dans sh. Enfin. ./script
au lieu de. script
si vous voulez éviter les surprises. mywiki.wooledge.org/BashFAQ/0/060