В чем разница между "источником" и "."?

В чем разница между выполнением скрипта (например, /some/script) с source /some/script а также . /some/script в баш?

2 ответа

Решение

source а также . являются синонимами в Bash.

Если вы хотите убедиться, что команды являются просто синонимами и ничего более, посмотрите на исходный код, скажем, для версии 4.3, и изучите файл. builtins/source.def, Вы прочтете, что обе встроенные команды, source а также ., используйте ту же функцию: source_builtin,

. является синонимом source в bash, но не в POSIX sh, поэтому вы должны использовать . если ваш скрипт запускается /bin/sh. Обратите внимание, что bash утверждает, что работает как POSIX sh, когда вызывается как / bin / sh, но принимает source без жалоб.

Такое поведение меня укусило, например, скрипты, протестированные с использованием bash, так как / bin / sh не работают при запуске под ash.

Другие вопросы по тегам