Bash définir les variables avec exec
Vous pouvez définir une variable pour une seule commande comme ceci:
MY_VARIABLE=my_value ./my_script.sh
Vous pouvez vous en remettre à un autre script comme ceci:
exec ./my_script.sh
Mais quand j'ai essayé de faire les deux comme ceci:
exec MY_VARIABLE=my_value ./my_script.sh
J'obtiens une erreur:
exec: MY_VARIABLE=my_value: not found
Pourquoi est-ce?
Est-il possible de faire cela?
OriginalL'auteur Ken | 2014-04-04
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser
env
pour spécifier la variable d'environnement:Si vous voulez que votre script pour démarrer avec un environnement vide ou avec la seule spécifié variables, utilisez la
-i
option.De
man env
:OriginalL'auteur devnull
De bash, vous pouvez définir des variables d'environnement pour une commande en mettant les affectations au début de la commande. Cela fonctionne de la même pour
exec
comme toute autre commande, de sorte que vous écrivez:exec env "$@"
et il va fonctionner ou non "$@" ensembles de variables. Pour utiliser cette solution, je dois analyser et de diviser les arguments de "$@".OriginalL'auteur rici