Jaký je rozdíl mezi "zdrojem" a "."?

137

Jaký je rozdíl mezi spuštěním skriptu (např. / some / script) ssource /some/script a. /some/script v Bashu?

    
dané binW 09.02.2011 18:18

2 odpovědi

124

source a. jsou synonymní v Bash .

Pro každého, kdo by chtěl ověřit, že příkazy jsou pouze synonyma a nic víc, podívejte se na zdrojový kód , například pro verzi 4.3, a prohlédněte soubor builtins/source.def . Přečtete, že oba vestavěné příkazy source a . , použijte stejnou funkci: source_builtin .

    
odpověděl user8290 09.02.2011 18:26
41

. je synonymem prosource v bash, ale ne v POSIX sh, takže byste měli použít., pokud váš skript běží pomocí / bin / sh. Všimněte si, že bash tvrdí, že běží jako POSIX sh při volání jako / bin / sh, ale přijímásource bez stížnosti.

Toto chování mě klepalo, skripty testovány s bash as / bin / sh se nezdaří při spuštění pod popelem.

    
odpověděl jjg 09.02.2011 21:42