Qual é a diferença entre “source” e “.”?

133

Qual é a diferença entre a execução de um script (por exemplo, / algum / script) com source /some/script e . /some/script no Bash?

    
por binW 09.02.2011 / 18:18

2 respostas

120

source e . são sinônimos em Bash .

Para quem quiser verificar se os comandos são simplesmente sinônimos e nada mais, consulte o código-fonte , digamos para a versão 4.3, e examine o arquivo builtins/source.def . Você vai ler que ambos os comandos internos, source e . , use a mesma função: source_builtin .

    
por user8290 09.02.2011 / 18:26
41

. é sinônimo de source no bash, mas não no POSIX sh, então você deve usar . se o seu script for executado por / bin / sh. Note que o bash afirma ser executado como POSIX sh quando chamado como / bin / sh, mas aceita source sem reclamação.

Esse comportamento me mordeu, scripts testados com o bash como / bin / sh falham quando executados sob cinzas, por exemplo.

    
por jjg 09.02.2011 / 21:42

Tags