Wie erfolgt die Umgebungsvariable in Eingabebefehl von su definieren
Frage
Dieser Befehl hat eine leere Ausgabe.
su user -c "ABC=abc;echo $ABC"
Jede Idee, wie kann ich eine Variable in dem Eingabebefehl definieren?
Lösung
Ändern Sie Ihre Angebote zu einfachen Anführungszeichen. Die doppelten Anführungszeichen erlauben den Variable in der aktuellen Umgebung ersetzt werden, wo sie noch nicht festgelegt sind. Um den Unterschied zu sehen, versuchen Sie Ihre Version mit $USER
und vergleichen Sie es mit diesem:
su user -c 'ABC=abc; echo $ABC; echo $USER'
Andere Tipps
Bei Verwendung einer Bourne-Shell-Variante:
ABC=abc su user -c 'echo $ABC'
Wenn nicht, Verwendung env.
env ABC=abc su user -c 'echo $ABC'
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow