Das habe ich kürzlich gelernt
. ./.a.a
und ./.a.a
ist das gleiche.
Jedoch source source .a.a
gibt das Versuchen einen Fehler. IMO, .
ein Bash-Alias für source
sollte sich nicht anders verhalten, also was fehle ich?
Bonus, warum ist . .
OK, wenn source source
nicht?
. script
und./script
dasselbe sind? Sie sind es mit Sicherheit nicht . Auch.
ist kein Alias zusource
. Es ist anders herum..
ist der Standard undsource
ist ein Alias von.
..
Befehl, aber ich meine, ersource
ist einfach ein besserer Befehl. Wenn Siesource somefile
in einem Skript sehen, wissen Sie sofort, was diese Anweisung bewirkt, aber. somefile
nicht nur, was sie bewirkt. Sie können leicht den.
Charakter insgesamt verpassenbash: .: .: is a directory
auf. .
ok Anforderungen erläutert.. ./.a.a .
, um ehrlich zu sein. : -DA Quiz von Art, wenn Sie so wollen. :-) Verknüpfte Frage ist genial, vielen Dank. Was gab mir diese Idee: Die Tatsache, dass ich keinen Unterschied bei der Ausführung von Dateien auf diese Weise gesehen hatte und die Tatsache, dass ich irgendwo gelesen habe,.
ist ein Alias fürsource
. :-)Antworten:
Sie können nicht einfach ersetzen
.
mitsource
überall; wennfunktioniert, können Sie die erste ersetzen
.
(zumindest in Bash):Das zweite
.
stellt das aktuelle Verzeichnis dar, das Sie nicht durch ersetzen könnensource
(besonders nicht./
durch,source
wie Sie es getan haben).wäre OK, wenn Sie eine Datei
source
im aktuellen Verzeichnis hätten, die etwas Bedeutendes für Ihre aktuelle Shell enthält. Ich kann nicht sehen, wie es. .
wäre ...Außerdem ,
. ./.a.a
und./.a.a
sind nicht die gleichen, die zweite Form läuft.a.a
in einer separaten Schale. Siehe Was ist der Unterschied zwischen dem Sourcing ('.' Oder 'source') und dem Ausführen einer Datei in Bash? für Details.quelle
source
ist ein Shell-Schlüsselwort, das wie folgt verwendet werden soll:source
file
wherefile
enthält gültige Shell-Befehle. Diese Shell-Befehle werden in der aktuellen Shell ausgeführt, als würden sie über die Befehlszeile eingegeben. Jetzt.
file
macht genau das gleiche.Darüber hinaus
.
bedeutet allein "das aktuelle Arbeitsverzeichnis" wie in./xyz
("xyz
in diesem Verzeichnis") odera/b/./c/./d
(das ist identisch mita/b/c/d
).Darüber hinaus hat
.
in einem Dateinamen eine Bedeutung nur durch Konvention wie in,.foobar
die eine "versteckte" Datei anzeigt (nicht wirklich ...) oder wie infoobar.pdf
, die ein Dateiformat durch das Suffix anzeigt (hier.pdf
).Diese unterschiedlichen Bedeutungen können nicht vertauscht werden.
quelle
.
ist in keiner Weise veraltet. Anderssource
als bei der portablen, POSIX-definierten Art, eine Datei zu beschaffen. Dersource
Alias ist shell-spezifisch und kann entweder fehlen (zum Beispiel indash
) oder sich anders als der Standard verhalten.
.