O comando . (que tem um sinônimo, source , em bash , mas não na maioria dos outros derivados do shell Bourne) lê o arquivo nomeado como parte do shell atual.
Considere:
$ cat test.sh
export ENVVAR="Welcome"
echo $ENVVAR
$ echo $ENVVAR
$ test.sh
Welcome
$ echo $ENVVAR
$ . test.sh
Welcome
$ echo $ENVVAR
Welcome
$
NB: Cheat 1: Eu suponho que test.sh é executável. Batota 2: eu suponho que test.sh está em um diretório em $PATH .
Isso significa que as variáveis de ambiente definidas em test.sh afetam o shell atual. Por contraste, a execução de um comando sem o . não afeta o ambiente do shell atual. O mecanismo . é usado quando .profile e arquivos relacionados são lidos, por exemplo.
Observe que . procura nomes simples (como test.sh sem barra) no PATH, mas o arquivo só precisa ser legível; não precisa ser executável.