Antworten:
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 sehen help source
und help .
zeigen die gleichen Informationen.
man bash
und dann suchen source
, sehen Sie, dass dies source filename [arguments]
ein Synonym für ist . filename [arguments]
.
.
ist gleichbedeutend mit source
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 jedoch source
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.
#!/bin/sh
Sie niemals davon ausgehen sollten, dass die Shell nur POSIX-Funktionen unterstützt. pubs.opengroup.org/onlinepubs/9699919799/utilities/…