В чем разница между выполнением скрипта, подобного этому:
./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.