export
ist ein Bash eingebaut, echo
ist eine ausführbare Datei in Ihrem $PATH
. Also export
wird von Bash so interpretiert, wie es ist, ohne einen neuen Prozess zu erzeugen.
Sie müssen Bash dazu bringen, Ihren Befehl zu interpretieren, den Sie mit -c
als Zeichenfolge übergeben können Möglichkeit:
bash -c "export foo=bar; echo \$foo"
AUCH:
Jeder Aufruf von bash -c
beginnt mit einer frischen Umgebung. Also sowas wie:
bash -c "export foo=bar"
bash -c "echo \$foo"
wird nicht funktionieren. Der zweite Aufruf merkt sich foo
nicht .
Stattdessen müssen Sie Befehle verketten, die durch ;
getrennt sind in einem einzigen Aufruf von bash -c
:
bash -c "export foo=bar; echo \$foo"
Wenn Sie die C-Shell verwenden -
setenv PATH $PATH":/home/tmp"