¿Cuál es la diferencia entre ejecutar un script como este?
./test.sh
y ejecutando un script como este:
. test.sh
?
Intenté un script simple de dos líneas para ver si podía encontrar si había alguna diferencia:
#!/bin/bash
ls
Pero ambos . test.sh
y ./test.sh
devolvieron la misma información.
test.sh
no es lo mismo que ./test.sh
(el primero invoca una PATH
búsqueda), también lo es . test.sh
y es . ./test.sh
diferente de la misma manera (el primero invoca una PATH
búsqueda). Muchas conchas parecen incluir implícitamente .
al final de PATH
cuando se hace una .
búsqueda de ruta, pero este comportamiento no es estándar. Por lo tanto, es más exacto para comparar test.sh
vs . test.sh
y ./test.sh
vs . ./test.sh
.