Qual é a diferença entre executar um script como este:
./test.sh
e executando um script como este:
. test.sh
?
Tentei um script simples de duas linhas para verificar se havia alguma diferença:
#!/bin/bash
ls
Mas ambos . test.sh
e ./test.sh
retornou a mesma informação.
test.sh
não é o mesmo que ./test.sh
(o primeiro invoca uma PATH
pesquisa), assim são . test.sh
e . ./test.sh
diferente da mesma forma (o antigo invoca uma PATH
pesquisa). Muitos shells parecem incluir implicitamente .
no final de PATH
uma .
pesquisa de caminho, mas esse comportamento não é padrão. Assim, é mais preciso para comparar test.sh
vs . test.sh
e ./test.sh
vs . ./test.sh
.