Warum wurde `.` ausgewählt, um den Punktbefehl darzustellen?

8

Ich frage mich, nachdem ich diese Frage gesehen habe , warum das .Symbol ausgewählt wurde, um den Punktbefehl darzustellen .

Ich kann nicht viel über den Ursprung oder den Schöpfer herausfinden und bin gespannt, warum ein Punkt ausgewählt wurde, um diesen Befehl darzustellen.

jesse_b
quelle
2
Haben Sie versucht, Stephen Bourne zu fragen?
schily
1
@schily: Er war nicht verfügbar, um zu chatten
jesse_b
8
Weil es dumm wäre, "%" den "Punktbefehl" zu nennen.
Ignacio Vazquez-Abrams
1
@slm: Richtig, warum wurde .der Befehl dot (source) dargestellt? Bezieht es sich auf .das aktuelle Verzeichnis?
Jesse_b
1
@ Rob: Nein, ist es nicht.
Jesse_b

Antworten:

7

Die früheste Erwähnung des Punktbefehls, den ich finden kann, befindet sich im Handbuch für Stephen Bournes shShell in Unix Release 7 (er ist möglicherweise älter, aber offensichtlich nicht als einer der shin Release 6 integrierten Befehle vorhanden ).

. file  Read and execute commands from file and return.  The search path
        $PATH is used to find the directory containing file.

Der Punkt scheint ganz allgemein mit "hier" oder "aktuell" verbunden zu sein. Das .Verzeichnis ist das aktuelle Verzeichnis , und die .Adresse im adbDebugger aus derselben Unix-Version hatte eine .Adresse, die die aktuelle Adresse war . .Wenn Sie im edEditor eine gefolgt von einer neuen Zeile eingeben, wird die aktuelle Zeile des Bearbeitungspuffers erneut angezeigt ( .adressiert die aktuelle Zeile). Der Punkt bedeutet auch den aktuellen Knoten in bestimmten strukturierten Abfragesprachen für XML, JSON, YAML usw. (obwohl dies spätere Erfindungen sind).

Ich denke daher, dass es nicht zu weit hergeholt ist, um zu spekulieren, dass der .Befehl in der Shell auch "hier" oder "aktuell" bedeutet. Insbesondere "Führen Sie dieses Skript in der aktuellen Umgebung aus ."

Der Punkt ist auch sehr schnell und einfach zu geben, und eine gemeinsame Aufgabe zu tun mit einem kurzen Befehl mit (ob es in sein ed, adboder in der Schale) ein weiterer Grund gewesen sein , warum ein anderer Name länger nicht verwendet wurde.


Beachten Sie, dass ich nicht über eine funktionierende Version habe shvon Release 7 zu Test Dinge in, und das kann ich nicht die tatsächliche findet Implementierung von. in Bourne - Shell aus dieser Veröffentlichung in der oben erwähnten Git - Repository, so dass ich nicht sagen kann , sicher, dass es genau das getan hat, was es heute tut. Aber es ist wahrscheinlich, dass es so war.

Kusalananda
quelle
+1. Danke für diese lange Antwort. Gibt es übrigens einen Unterschied zwischen Punkt und Quelle, wenn Befehle zum Ausführen von Befehlen aus einer Datei verwendet werden: . scriptfileversus source scriptfilein bash? Mit anderen Worten, sind es zwei Namen desselben integrierten Befehls?
Sudodus
@sudodus Sie sind gleichwertig. Der sourceBefehl hat jedoch einen anderen Verlauf, da er von geerbt wurde csh.
Kusalananda
2

Möge es sein, weil dotder Name des Symbols ist ..

1: ein kleiner Fleck

Isaac
quelle
+1. Ja natürlich, das ist die kurze Antwort ;-)
Sudodus