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?

War es hilfreich?

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