В чем разница запуска скрипта как .
или как ./
? Например:В чем разница. а также ./?
echo "echo hi" > script.bash
chmod +x script.bash
./script.bash
# outputs hi
. script.bash
# outputs hi
В чем разница запуска скрипта как .
или как ./
? Например:В чем разница. а также ./?
echo "echo hi" > script.bash
chmod +x script.bash
./script.bash
# outputs hi
. script.bash
# outputs hi
./
ярлык для текущего каталога, если вы звоните ./script.bash
вы просто вызвать скрипт в текущем каталоге.
. script.bash
что-то другое, здесь .
ярлык для source a file, длинная версия будет source script.bash
. Sourcing означает, что скрипт выполняется в текущем контексте. Например. если ваш скрипт меняет каталог, вы фактически находитесь в этом каталоге после запуска скрипта, чего бы не случилось, если бы вы просто выполнили свой сценарий с помощью ./script.bash
, так как тогда сценарий имеет свой собственный контекст.
ах хорошо, тогда мой ответ полностью не прав ...: P я удаляю его. –
./filename
означает, что вы имеете в виду имя файла в текущем каталоге.
. filename
- это своего рода оператор включения (содержащий внешний файл в вашем текущем файле сценария, который можно использовать для хранения функций во внешнем файле, а затем иметь возможность вызвать их в файле сценария). Я использую его для этого цель в моих скриптах, очень удобно!
Edit: Odi объяснил это намного лучше;)
Абсолютно все. –
@ IgnacioVazquez-Abrams Не очень полезный ответ, каким бы он ни был. – kqr
@kqr: Вот почему это комментарий, а не ответ. –