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"