Was ist der Ursprung der UNIX-Eingabeaufforderung $ (Dollar)?

29122
Max Howell

Die UNIX-Eingabeaufforderung verwendet ein $Symbol, um anzuzeigen, dass Ihre Eingabe erwartet wird.

Ich habe mich gefragt, warum dieses Symbol gewählt wurde - ob es einen Grund gibt. Der Dollar scheint etwas unerwartet. Ein >Symbol wäre meiner Meinung nach suggestiver gewesen.

74
Obwohl nicht programmierbedingt, sicherlich computerbezogen, also besser bei Super User, denke ich. Joey vor 15 Jahren 3
Ich möchte auch die Antwort wissen. Ich werde es auf SU suchen. Gabriel Hurley vor 15 Jahren 0
Es ist die Bourne-Shell-Eingabeaufforderung, nicht die Unix-Eingabeaufforderung. Die standardmäßige Csh-Eingabeaufforderung lautet%. wfaulk vor 15 Jahren 23
wfaulk, ich wünschte, ich könnte Ihren Kommentar mehr als einmal bestätigen. Richie Marquez vor 15 Jahren 1
€ gab es noch nicht ... mouviciel vor 15 Jahren 17
Eine der größten Fragen hier! dag729 vor 14 Jahren 0

5 Antworten auf die Frage

52
A Dwarf

Lass uns ein wenig erkunden:

  • Version 8 Unix ist einfach. Es gibt immer noch Manpages. Gehen Sie zur sh-Man- Seite und suchen Sie nach der Eingabeaufforderung. Sie werden an einen Punkt gelangen, an dem Sie lesen:

    PS1 Primäre Eingabeaufforderung, standardmäßig "$".

    PS2 Sekundäre Eingabeaufforderung, standardmäßig ">".

  • Mal sehen, ob das der erste war. Die Unix- Manpages von Version 7 sind weiterhin verfügbar, und die shManpage enthält die gleiche Beschreibung der Eingabeaufforderungen wie Version 8.

  • Was ist mit Version 6? Version 6 Unix war nicht schwer zu verfolgen. Aber die sh Manpage erwähnt überhaupt keine Aufforderungen. Die Anleitung "Erste Schritte" ist hier hilfreich. es erwähnt :

    Der Höhepunkt Ihrer Login-Bemühungen ist ein Prozentzeichen „%“. Das Prozentzeichen bedeutet, dass UNIX bereit ist, Befehle vom Terminal zu akzeptieren.

Aha! Version 6 hatte es also nicht. Version 7 war die erste! Erschienen im Jahr 1979.

Glücklich? Ich hasse es, auf Ihre Parade zu regnen, aber seien Sie nicht :)

Das Problem ist, dass Version 6 eine inspirierende Unix war. Schauen Sie sich die Varianten hier an . Kann es sein, dass das $ -Zeichen als Eingabeaufforderung nicht in Version 7, sondern in einer dieser Varianten gestartet wurde und dann die Idee in 7 aufgenommen wurde?

Zu diesem Zeitpunkt hatte ich es satt, nach Betriebssystemdokumentationen zu suchen, als ich 6 Jahre alt war. Dies verringert sie zumindest erheblich. Wir wissen, dass Version 7 die erste Bell Labs-Version war, die das $ -Zeichen als Eingabeaufforderung zeigte. Wir müssen nur sicher sein, dass keine dieser Version 6-Varianten eingeführt wurde. Es ist sinnvoll, diese Änderung in Version 7 zu veröffentlichen, da diese Version die Bourne-Shell eingeführt hat und die Thompson-Shell ersetzt, die in früheren Unix-Versionen (und die in Workbench Unix von Programmer's Workbench verwendete Massey-Shell ) ersetzt wurde.

Noch ein letzter Gedanke:
Während die Vorstellung, dass $ ein Hinweis auf die Wort-Shell oder das Skript ist, ansprechend ist und durchaus Sinn ergibt, sollten Sie nicht davon ausgehen, dass dies jemals offiziell bestätigt wird. Die Entwicklung von Unix wurde von einer ziemlich großen Gruppe von Menschen geteilt, die im Leben viel größere Bedenken hatten, als die Entwicklung eines Symbols zu verfolgen. Und einige dieser außergewöhnlichen Programmierer sind nicht einmal mehr unter uns.

Das Beste, was Sie hoffen können, ist wahrscheinlich die Frage "Was ist der Ursprung der UNIX $ (Dollar) - Eingabeaufforderung?" ist der Name der ersten Unix-Shell, die sie einführt.

Version 7 war das erste Unix mit der Bourne-Shell. In Version 6 wurde die Thompson-Shell ersetzt. Daher ist dies eine Abgrenzung zwischen Shell-Eingabeaufforderungen. wfaulk vor 15 Jahren 4
Die Bourne-Shell wurde auch von Stephen Bourne entwickelt. wfaulk vor 15 Jahren 0
Jep. Wir können es so ziemlich auf die Bourne Shell zurückführen. Was den Autor angeht, kein Zweifel. Aber er war wie alle anderen auch ein Mitarbeiter von Bell Labs. A Dwarf vor 15 Jahren 1
Ja, aber er hat die Hülle ziemlich selbst entwickelt, und es muss derjenige gewesen sein, der sich für $ entschieden hat. wfaulk vor 15 Jahren 0
Es gab auch Man-Seiten mindestens bis zur Version 3: http://minnie.tuhs.org/UnixTree/V3/usr/man/man1/ wfaulk vor 15 Jahren 1
Bereits in der sechsten Ausgabe und vor Tagen wurde UNIX mit vollständigem Quellcode verteilt. Alle Universitäten, die es verstanden haben, neigten dazu, lokale Modifikationen vorzunehmen (hierher kam BSD), so dass einige lokale Systemprogrammierer an der University of Waterloo eine "Shell" -Aufforderung eher wie eine Schnecke aussehen sollten, und% zu einem @ . Und wie Sie sagen, es gab viele Varianten, und als sie in v7 wieder zusammengestellt wurden, waren die Änderungen zweifellos bereits unscharf. Michael Dillon vor 15 Jahren 2
Eine mögliche Inspirationsquelle für Bourne: das [MTS FORTRAN-IV / WATFIV-Handbuch] (https://books.google.com/books?id=59NWAAAAMAAJ&pg=SA2-PA76&lpg=SA2-PA76&dq=punched+card+dollar+sign&source bl bl bl bl bl bl bl bl bl bl bl bl bl bl bl bl bl bl bl bl bl mit einem Dollarzeichen ($) in Spalte 1. " cxw vor 6 Jahren 0
7
Michael Dillon

Die ursprüngliche Eingabeaufforderung für die Bourne-Shell war eine Schnecken-Shell "@". Ich erinnere mich an die 6. Ausgabe von UNIX, die meines Erachtens vor dem kommerziellen Verkauf von UNIX war. Der Wechsel zu einem $ -Zeichen könnte also mit der Kommerzialisierung von UNIX zusammenhängen, wie Robert vorschlug, $ hell.

Die Bourne-Shell war bis Version 7 nicht vorhanden. wfaulk vor 15 Jahren 3
Nun, wir haben es nur "Shell" genannt, also weiß ich nicht wirklich, wer es geschrieben hat. Ich erinnere mich, Poster gesehen zu haben, auf denen alle Muschelbefehle dokumentiert waren, die in einer Spirale angeordnet waren wie eine Schneckenschale oder ein Schild. Vielleicht war es von O'Reilly, aber ich bin mir nicht sicher. Michael Dillon vor 15 Jahren 2
7
wfaulk

Leider kann ich die Frage nicht beantworten, aber ich kann Ihnen ein paar Hinweise geben.

5
Robert Harvey

Tatsächlich ist die standardmäßige Eingabeaufforderung in Linux für ein normales Benutzerkonto, das eine Bourne-, Bash- oder Korn-Shell verwendet, das Dollarzeichen ($), während die Root-Eingabeaufforderung eine Hash-Marke (#) ist. Im Gegensatz dazu ist der traditionelle C-Shell-Prompt ein Prozentzeichen (%).

Wenn ich raten würde, erinnert das $ an das Wort $ hell, weshalb es wahrscheinlich gewählt wurde.

Er fragt nach dem tatsächlichen Ursprung, nicht nach dem, was die Leute vermuten, dass es sein könnte. davr vor 15 Jahren 4
Schnapp dir nicht. Nach den anderen Antworten zu urteilen, scheint es sowieso niemand wirklich zu wissen. Robert Harvey vor 15 Jahren 5
I guess the root prompt # is so chosen to coincide with the comment character, reducing the chances of accidentally pasting dangerous commands... or maybe not! I don't think they had much in the way of cut-and-paste back in the day. Sam Watkins vor 11 Jahren 1
1
Vikram Durai

Achtung: Dies mag nicht zutreffen, es ist nur eine wilde Vermutung:

Ich habe das Gefühl, dass $es eine psychologische Erinnerung ist.

Wir müssen uns daran erinnern, dass es damals keine digitale Eingabeaufforderung gab, nur einen "Teletyp" ( tty). Und wahrscheinlich sagte der Dollar "Sie verschwenden Papier und Geld, um diese Telefonleitung aufrecht zu erhalten. Geben Sie einfach einige Befehle ein !!".