Was ist der Unterschied zwischen "Quelle" und "."?

135

Was ist der Unterschied zwischen der Ausführung eines Skripts (z. B. / some / script) mit source /some/script und . /some/script in Bash?

    
binW 09.02.2011, 18:18
quelle

2 Antworten

122

source und . sind synonym in Bash .

Wenn Sie überprüfen möchten, ob die Befehle einfach Synonyme sind und nicht mehr, schauen Sie sich den Quellcode , sagen wir für Version 4.3, und untersuchen Sie die Datei builtins/source.def . Sie werden lesen, dass die beiden integrierten Befehle source und . , verwenden Sie die gleiche Funktion: source_builtin .

    
user8290 09.02.2011, 18:26
quelle
41

. ist gleichbedeutend mit source in bash, aber nicht in POSIX sh, also sollten Sie . verwenden, wenn Ihr Skript von / bin / sh ausgeführt wird. Beachten Sie, dass bash angibt, wie POSIX sh zu laufen, wenn sie als / bin / sh aufgerufen wird, akzeptiert aber source ohne Beschwerde.

Dieses Verhalten hat mich gebissen, Skripte, die mit bash getestet wurden, als / bin / sh, wenn sie zum Beispiel unter Asche ausgeführt werden.

    
jjg 09.02.2011 21:42
quelle

Tags und Links