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"