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.shund ./test.shdie gleichen Informationen zurückgegeben.
test.shes nicht dasselbe ist wie ./test.sh(der erste ruft eine PATHSuche auf), so sind es auch . test.shund . ./test.shauf die gleiche Weise anders (der erste ruft eine Suche auf PATH). Viele Shells scheinen .am Ende PATHeiner .Pfadsuche implizit enthalten zu sein , aber dieses Verhalten ist nicht Standard. Somit ist es genauer, test.shvs . test.shund ./test.shvs zu vergleichen . ./test.sh.