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?

Était-ce utile?

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
scroll top