Was ist der Unterschied zwischen dem Ausführen eines Skripts wie folgt:
./test.sh
und Ausführen eines Skripts wie folgt:
. test.sh
?
Ich habe ein einfaches zweizeiliges Skript ausprobiert, um festzustellen, ob es einen Unterschied gibt:
#!/bin/bash
ls
Aber beide . test.sh
und ./test.sh
die gleichen Informationen zurückgegeben.
test.sh
es nicht dasselbe ist wie ./test.sh
(der erste ruft eine PATH
Suche auf), so sind es auch . test.sh
und . ./test.sh
auf die gleiche Weise anders (der erste ruft eine Suche auf PATH
). Viele Shells scheinen .
am Ende PATH
einer .
Pfadsuche implizit enthalten zu sein , aber dieses Verhalten ist nicht Standard. Somit ist es genauer, test.sh
vs . test.sh
und ./test.sh
vs zu vergleichen . ./test.sh
.