export
es un Bash incorporado, echo
es un ejecutable en tu $PATH
. Así que export
es interpretado por Bash tal cual, sin generar un nuevo proceso.
Debe hacer que Bash interprete su comando, que puede pasar como una cadena con el -c
opción:
bash -c "export foo=bar; echo \$foo"
TAMBIÉN:
Cada invocación de bash -c
comienza con un ambiente fresco. Así que algo como:
bash -c "export foo=bar"
bash -c "echo \$foo"
no trabajará. La segunda invocación no recuerda foo
.
En su lugar, debe encadenar comandos separados por ;
en una sola invocación de bash -c
:
bash -c "export foo=bar; echo \$foo"
Si está utilizando C shell -
setenv PATH $PATH":/home/tmp"