Was ist der Unterschied zwischen der Ausführung eines Skripts (zB / some / script) mit source /some/script
und . /some/script
in Bash?
147
source
und .
sind auch in Bash .
Wenn Sie überprüfen möchten, ob die Befehle nur Synonyme und nichts weiter sind, lesen Sie den Quellcode , z. B. Version 4.3, und überprüfen Sie die Datei builtins/source.def
. Sie werden , dass beide der integrierten Befehle lesen, source
und .
verwenden Sie die gleiche Funktion: source_builtin
.
.
ist der traditionelle Quellbefehl , der von der alten Borowski-Shell geerbt wurde.source
Dies ist nur eine Bash-Funktion, die genau das Gleiche tut.
, vermutlich, weil sie besser lesbar ist (eine.
allein ist mit einer kleinen Schriftart möglicherweise schwer zu erkennen). Sie sehenhelp source
undhelp .
zeigen die gleichen Informationen.man bash
und dann suchensource
, sehen Sie, dass diessource filename [arguments]
ein Synonym für ist. filename [arguments]
..
ist gleichbedeutend mitsource
in bash, aber nicht mit POSIX sh, daher sollten Sie verwenden,.
wenn Ihr Skript von / bin / sh ausgeführt wird. Beachten Sie, dass bash behauptet, wie POSIX sh zu laufen, wenn es als / bin / sh aufgerufen wird, dies jedochsource
ohne Beanstandung akzeptiert .Dieses Verhalten hat mich gebissen, Skripte, die mit bash wie / bin / sh getestet wurden, schlagen beispielsweise fehl, wenn sie unter Asche ausgeführt werden.
quelle
#!/bin/sh
Sie niemals davon ausgehen sollten, dass die Shell nur POSIX-Funktionen unterstützt. pubs.opengroup.org/onlinepubs/9699919799/utilities/…