El .
comando (que tiene un sinónimo, source
in 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.sh
es ejecutable. Truco 2: supongo que test.sh
está en un directorio en $PATH
.
Significa que las variables de entorno establecidas test.sh
afectan el shell actual. Por el contrario, ejecutar un comando sin el .
no afecta el entorno del shell actual. El .
mecanismo se utiliza cuando .profile
se leen y los archivos relacionados, por ejemplo.
Tenga en cuenta que .
busca nombres simples (como test.sh
sin una barra inclinada) en PATH, pero el archivo solo debe ser legible; No tiene que ser ejecutable.
bash
no está en modo POSIX,.
/source
también verifica el directorio actual si no se encuentra ningún archivo usandoPATH
.