Son equivalentes en bash porque hacen exactamente lo mismo. Por otro lado, source
tiene 5 caracteres más y no es portátil para shells solo POSIX o Bourne, mientras que .
(dot) lo es, así que nunca me molesto en usarlo source
.
Eso es correcto: el abastecimiento de un archivo ejecuta los comandos en el shell actual y afectará su entorno de shell actual. Todavía puede pasar argumentos al archivo de origen y bash realmente buscará $PATH
el nombre del archivo como un comando normal si no contiene barras.
No relacionado con la pregunta original de .
vs source
, pero en su ejemplo,
. ./myScript.sh
no es idéntico a
source myScript.sh
porque while .
y source
son funcionalmente idénticos, myScript.sh
y ./myScript.sh
no son lo mismo. Como ./myScript.sh
contiene una barra oblicua, se interpreta como una ruta y el shell simplemente la usa ./myScript.sh
. Sin embargo, myScript.sh
no tiene una barra oblicua, por lo que el shell $PATH
primero lo busca. Este es el comportamiento estándar especificado por POSIX para .
. La mayoría de los shells se configuran de manera predeterminada, aunque pueden agregar extensiones (como buscar en el directorio de trabajo actual después de la búsqueda de ruta) u opciones para cambiar el comportamiento de .
/ source
.