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

123

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

    
задан binW 09.02.2011 в 17:18
источник

2 ответа

114

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

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

ответ дан user8290 09.02.2011 в 17:26
источник
38

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

Это поведение укусил меня, скрипты, протестированные с bash as / bin / sh fail при запуске под зоной, например.

    
ответ дан jjg 09.02.2011 в 20:42