Cette commande a une sortie vide.Comment définir la variable d'environnement dans la commande d'entrée su su
su user -c "ABC=abc;echo $ABC"
Une idée, comment puis-je définir une variable dans la commande d'entrée?
Cette commande a une sortie vide.Comment définir la variable d'environnement dans la commande d'entrée su su
su user -c "ABC=abc;echo $ABC"
Une idée, comment puis-je définir une variable dans la commande d'entrée?
Modifiez vos guillemets simples. Les guillemets permettent à la variable d'être substituée dans l'environnement actuel où elle n'est pas encore définie. Pour voir la différence, essayez votre version avec $USER
et le comparer à celui-ci:
su user -c 'ABC=abc; echo $ABC; echo $USER'
Si vous utilisez une variante de bourne shell:
ABC=abc su user -c 'echo $ABC'
Sinon, utilisez env.
env ABC=abc su user -c 'echo $ABC'
Merci pour la réponse, cela fonctionne, mais il est pas exactement j'ai besoin. J'ai une chaîne d'entrée assez longue pour la commande su et je dois déterminer la valeur de la variable en tant que "utilisateur". –