-
Eles são equivalentes no bash em que eles fazem exatamente a mesma coisa. Por outro lado,
source
tem 5 caracteres a mais e não é portável para shells somente POSIX ou Bourne, enquanto.
(ponto) é, então eu nunca me incomodo em usarsource
. -
Isso está correto - a obtenção de um arquivo executa os comandos no shell atual e isso afetará o ambiente atual do shell. Você ainda pode passar argumentos para o arquivo originado e o bash realmente procurará
$PATH
pelo nome do arquivo como um comando normal, se ele não contiver barras.
Não relacionado à pergunta original de .
vs source
, mas no seu exemplo,
. ./myScript.sh
não é idêntico a
source myScript.sh
porque, embora .
e source
sejam funcionalmente idênticos, myScript.sh
e ./myScript.sh
não são iguais. Como ./myScript.sh
contém uma barra, ele é interpretado como um caminho e o shell usa apenas ./myScript.sh
. No entanto, myScript.sh
não possui uma barra, portanto, o shell faz uma pesquisa $PATH
primeiro. Este é o comportamento padrão POSIX especificado para .
. A maioria das shells é padronizada, embora possam adicionar extensões (como pesquisar no diretório de trabalho atual após a pesquisa de caminho) ou opções para alterar o comportamento de .
/ source
.