Por que os comandos “bash” e “source” estão se comportando de maneira diferente? [fechadas]

-1

Estou usando o Mac OS 10.8. Eu executei o script /sw/fink/bin/init.sh usando o comando bash , que deveria fazer parte da pasta fink/bin da variável $PATH da sessão atual.

O comando fink não funcionou, então executei o script novamente com o comando . , que me foi dito como equivalente ao comando source ; Eu consegui chamar o fink agora sem um caminho absoluto.

Por que . funcionou e não bash ? É porque os comandos sh e bash são executados com sua própria variável $PATH temporária?

    
por Anthony 07.02.2013 / 07:40

1 resposta

3

bash somescript iniciará um novo bash shell, avaliará seu script e sairá. O script verá uma cópia do seu ambiente atual, mas todas as alterações serão descartadas quando o script terminar.

. somescript ou source somescript avaliarão o script em seu contexto atual, portanto, as alterações nas variáveis de ambiente existentes ou na configuração de novas serão mantidas.

    
por chronitis 07.02.2013 / 09:05