Comment définir la variable d'environnement dans la commande d'entrée su
Question
Cette commande a une sortie vide.
su user -c "ABC=abc;echo $ABC"
Toute idée, comment puis-je définir une variable dans la commande d'entrée?
La solution
Modifier vos citations guillemets simples. Les guillemets doubles permettent la variable à substituer dans l'environnement actuel où il n'est pas encore défini. Pour voir la différence, essayez votre version avec $USER
et le comparer à celui-ci:
su user -c 'ABC=abc; echo $ABC; echo $USER'
Autres conseils
Si vous utilisez une variante shell bourne:
ABC=abc su user -c 'echo $ABC'
Sinon, utilisez env.
env ABC=abc su user -c 'echo $ABC'
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow