Respostas:
sourcee .são sinônimos no Bash .
Para quem quiser verificar se os comandos são simplesmente sinônimos e nada mais, consulte o código-fonte , digamos a versão 4.3, e examine o arquivo builtins/source.def. Você vai ler que ambos os comandos internos, sourcee ., use a mesma função: source_builtin.
.é o comando de origem tradicional, herdado do antigo shell bourne. sourceé apenas um bash embutido que faz exatamente o mesmo que ., presumivelmente porque é mais legível ( .pode ser difícil identificar um sozinho com uma fonte pequena). Você verá help sourcee help .mostra as mesmas informações.
man bashe procurar, sourceverá que isso source filename [arguments]é sinônimo . filename [arguments].
.é sinônimo de sourceno bash, mas não no POSIX sh, portanto, você deve usar .se o script for executado por / bin / sh. Observe que o bash afirma ser executado como POSIX sh quando chamado como / bin / sh, mas aceita sourcesem reclamação.
Esse comportamento me incomodou, scripts testados com bash como / bin / sh falham quando executados no ash, por exemplo.
#!/bin/shvocê nunca deve assumir que o shell suporta nada além de recursos POSIX. pubs.opengroup.org/onlinepubs/9699919799/utilities/…