-
Eles são equivalentes no bash em que eles fazem exatamente a mesma coisa. Por outro lado,
sourcetem 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á
$PATHpelo 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 .