Respostas:
source
e .
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, source
e .
, 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 source
e help .
mostra as mesmas informações.
man bash
e procurar, source
verá que isso source filename [arguments]
é sinônimo . filename [arguments]
.
.
é sinônimo de source
no 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 source
sem reclamação.
Esse comportamento me incomodou, scripts testados com bash como / bin / sh falham quando executados no ash, por exemplo.
#!/bin/sh
você nunca deve assumir que o shell suporta nada além de recursos POSIX. pubs.opengroup.org/onlinepubs/9699919799/utilities/…