Qual è la differenza tra "source" e "."?

135

Qual è la differenza tra l'esecuzione di uno script (ad esempio / alcuni / script) con source /some/script e . /some/script in Bash?

    
posta binW 09.02.2011 - 18:18
fonte

2 risposte

122

source e . sono sinonimi anche in Bash .

Per chiunque desideri verificare che i comandi siano semplicemente sinonimi e nient'altro, guarda il codice sorgente , per la versione 4.3, ed esamina il file builtins/source.def . Leggerai che entrambi i comandi incorporati, source e . , usa la stessa funzione: source_builtin .

    
risposta data user8290 09.02.2011 - 18:26
fonte
41

. è sinonimo di source in bash, ma non in POSIX sh, quindi dovresti usare . se lo script è eseguito da / bin / sh. Si noti che bash afferma di funzionare come POSIX sh quando viene chiamato come / bin / sh, ma accetta source senza reclami.

Questo comportamento mi ha morso, gli script sono stati testati con bash e / bin / sh hanno avuto esito negativo quando si eseguiva il cenere, per esempio.

    
risposta data jjg 09.02.2011 - 21:42
fonte

Leggi altre domande sui tag