Jaka jest różnica między wykonywaniem takiego skryptu:
./test.sh
i wykonanie takiego skryptu:
. test.sh
?
Próbowałem prostego, dwuwierszowego skryptu, aby sprawdzić, czy mogę znaleźć różnicę:
#!/bin/bash
ls
Ale oba . test.sh
i ./test.sh
zwróciły te same informacje.
test.sh
nie jest to samo co ./test.sh
(pierwsze wywołuje PATH
wyszukiwanie), tak . test.sh
i są . ./test.sh
różne w ten sam sposób (pierwsze wywołuje PATH
wyszukiwanie). Wiele powłok wydaje się domyślnie zawierać .
na końcu PATH
podczas .
wyszukiwania ścieżki, ale takie zachowanie nie jest standardowe. Tak więc, jest bardziej dokładne, aby porównać test.sh
vs . test.sh
i ./test.sh
kontra . ./test.sh
.