Qual è la differenza tra l'esecuzione di uno script come questo:
./test.sh
ed eseguendo uno script come questo:
. test.sh
?
Ho provato un semplice script a due righe per vedere se riuscivo a trovare se c'era una differenza:
#!/bin/bash
ls
Ma entrambi . test.sh
e hanno ./test.sh
restituito le stesse informazioni.
test.sh
non è lo stesso di ./test.sh
(il primo invoca una PATH
ricerca), così sono . test.sh
e sono . ./test.sh
diversi allo stesso modo (il primo invoca una PATH
ricerca). Molte shell sembrano includere implicitamente .
alla fine di PATH
quando si esegue una .
ricerca di percorso, ma questo comportamento non è standard. Così, è più corretto confrontare test.sh
vs . test.sh
e ./test.sh
contro . ./test.sh
.