Eles são equivalentes no bash, pois fazem exatamente a mesma coisa. Por outro lado, source
tem 5 caracteres a mais e não é portátil para shells somente POSIX ou Bourne, enquanto .
(ponto) é, então nunca me incomodo em usá-lo source
.
Isso está correto - o fornecimento de um arquivo executa os comandos no shell atual e isso afeta o ambiente atual do shell. Você ainda pode passar argumentos para o arquivo de origem e o bash realmente procurará $PATH
o nome do arquivo como um comando normal se ele não contiver barras.
Não está relacionado à pergunta original de .
vs source
, mas no seu exemplo,
. ./myScript.sh
não é idêntico a
source myScript.sh
porque while .
e source
são funcionalmente idênticos myScript.sh
e ./myScript.sh
não são os mesmos. Como ./myScript.sh
contém uma barra, ela é interpretada como um caminho e o shell apenas usa ./myScript.sh
. No entanto, myScript.sh
não tem uma barra, então o shell a $PATH
procura primeiro. Este é o comportamento padrão especificado para POSIX.
. A maioria dos shells é padronizada para isso, 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
.