O script é executado em seu próprio ambiente. Ele não pode afetar o ambiente de seu shell pai (a partir do qual você inicia o script), ou seja, alterar $PATH
em um script não alterará $PATH
no seu shell interativo.
Um pequeno exemplo disso:
$ echo "$PATH"
/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin
$ ( PATH="hello"; echo "$PATH" )
hello
$ echo "$PATH"
/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin
(não importa se eu export
a variável PATH
novamente no subshell desde que já é exportado)
Sugiro o fornecimento do script com .
ou source
, que executaria os comandos no mesmo ambiente que o shell atual ou transformaria o script em uma função de shell.