Quelle est la différence entre l'exécution d'un script comme celui-ci:
./test.sh
et en exécutant un script comme celui-ci:
. test.sh
?
J'ai essayé un script simple de deux lignes pour voir si je pouvais trouver s'il y avait une différence:
#!/bin/bash
ls
Mais les deux . test.sh
et ont ./test.sh
retourné la même information.
test.sh
n'est pas la même chose que ./test.sh
(le premier invoque une PATH
recherche), il en va de même . test.sh
et . ./test.sh
différent de la même manière (le premier invoque une PATH
recherche). De nombreux shells semblent inclure implicitement .
à la fin d' PATH
une .
recherche de chemin d'accès, mais ce comportement n'est pas standard. Ainsi, il est plus juste de comparer test.sh
vs . test.sh
et ./test.sh
vs . ./test.sh
.