Antworten:
sourceund .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, sourceund .verwenden Sie die gleiche Funktion: source_builtin.
.ist der traditionelle Quellbefehl , der von der alten Borowski-Shell geerbt wurde. sourceDies 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 sehen help sourceund help .zeigen die gleichen Informationen.
man bashund dann suchen source, sehen Sie, dass dies source filename [arguments]ein Synonym für ist . filename [arguments].
.ist gleichbedeutend mit sourcein 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 jedoch sourceohne 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.
#!/bin/shSie niemals davon ausgehen sollten, dass die Shell nur POSIX-Funktionen unterstützt. pubs.opengroup.org/onlinepubs/9699919799/utilities/…