Яка різниця між виконанням такого сценарію:
./test.sh
та виконання такого сценарію:
. test.sh
?
Я спробував простий, дворядковий сценарій, щоб побачити, чи зможу я знайти, чи є різниця:
#!/bin/bash
ls
Але обидва . test.sh
і ./test.sh
повернули ту саму інформацію.
test.sh
не те саме, що ./test.sh
(перший викликає PATH
пошук), так . test.sh
і . ./test.sh
відрізняються однаково (колишній викликає PATH
пошук). Здається, багато снарядів неявно включаються .
в кінці PATH
під час .
пошуку шляху, але така поведінка не є стандартною. Таким чином, більш точно порівняти test.sh
проти . test.sh
і ./test.sh
проти . ./test.sh
.