В чем разница между выполнением скрипта (например, / some / script) с source /some/script
и . /some/script
в Bash?
В чем разница между выполнением скрипта (например, / some / script) с source /some/script
и . /some/script
в Bash?
source
и .
являются синонимами в Bash .
Для тех, кто хотел бы проверить, что команды являются просто синонимами и не более того, посмотрите исходный код , скажем, для версии 4.3, и рассмотрим файл builtins/source.def
. Вы прочтете, что обе встроенные команды, source
и .
, используйте ту же функцию: source_builtin
. Р>
.
является синонимом source
в bash, но не в POSIX sh, поэтому вы должны использовать .
, если ваш скрипт запущен / bin / sh. Обратите внимание, что bash утверждает, что работает как POSIX sh, когда вызывается как / bin / sh, но принимает source
без жалобы. Р>
Это поведение укусил меня, скрипты, протестированные с bash as / bin / sh fail при запуске под зоной, например.