El .comando (que tiene un sinónimo, sourcein bash, pero no en la mayoría de los demás derivados de shell Bourne) lee el archivo nombrado como parte del shell actual.
Considerar:
$ cat test.sh
export ENVVAR="Welcome"
echo $ENVVAR
$ echo $ENVVAR
$ test.sh
Welcome
$ echo $ENVVAR
$ . test.sh
Welcome
$ echo $ENVVAR
Welcome
$
NB: Truco 1: supongo que test.shes ejecutable. Truco 2: supongo que test.shestá en un directorio en $PATH.
Significa que las variables de entorno establecidas test.shafectan el shell actual. Por el contrario, ejecutar un comando sin el .no afecta el entorno del shell actual. El .mecanismo se utiliza cuando .profilese leen y los archivos relacionados, por ejemplo.
Tenga en cuenta que .busca nombres simples (como test.shsin una barra inclinada) en PATH, pero el archivo solo debe ser legible; No tiene que ser ejecutable.
bashno está en modo POSIX,./sourcetambién verifica el directorio actual si no se encuentra ningún archivo usandoPATH.