# Prompt

Als englisch prompt wird in der IT eine Aufforderung an den Benutzer bezeichnet, eine Eingabe (input) zu tätigen. Dabei gibt es meist unterschiedliche Kennzeichnungen, die unterschiedliche Programme oder Modi signalisieren. Auf Text-basierten Systemen werden dafür unterschiedliche Schriftzeichen als Präfix verwendet. Ein Prompt ist oft abschaltbar und kann teilweise auch verändert und damit individuell angepasst werden.
Eine direkte Übersetzung von input prompt ins Deutsche ist Eingabeaufforderung, eine Bezeichnung, die unter Windows jedoch den Kommandozeileninterpreter bezeichnet.
Als Prompts werden auch Aufgaben bezeichnet, die einer Künstlichen Intelligenz gestellt werden. Das dazugehörige Tätigkeitsfeld heißt Prompt Engineering.

## Funktionsprinzip

Auf Großrechnern (englisch Mainframes) wurden oft Fernschreiber verwendet, die sowohl Ausgaben als auch Eingaben als Text ausgaben. Zur Unterscheidung zwischen der Ausgabe eines Programms und der Eingabe durch den Benutzer wurden einzelne Zeichen vorangestellt, sodass beim Lesen des Ausdrucks klar war, was ein Benutzer eingegeben hat und was die Ausgabe eines Programmes war. Unterschiedliche Präfix-Zeichen konnten zusätzlich z. B. eine Meldung des Betriebssystems sofort von der Meldung eines Programms unterscheidbar machen. Auf Terminals (und Terminalemulationen) wurde dieses Prinzip übernommen.
Auf Mikrocomputern, etwa dem Apple IIe, werden Meldungen im Textmodus auf einem Computermonitor ausgegeben und ebenfalls unterschiedliche Schriftzeichen als Prompt verwendet.
Bei Betriebssystemen signalisiert ein „command prompt“, dass der Computer eine Eingabe erwartet. Auch hier gibt es unterschiedliche Zeichen – so haben etwa Unix-Shells unterschiedliche Prompt-Zeichen, die sich aber anpassen lassen. Auch unter PC-kompatiblem DOS ist der Prompt einstellbar. So lassen sich auch zusätzliche Informationen mit dem Prompt ausgeben, etwa der aktuelle Pfad, in dem sich ein Kommandozeileninterpreter gerade befindet.
Ein Beispiel ist der DOS-Befehl PROMPT (siehe Liste von DOS-Kommandozeilenbefehlen#P):
Hierbei steht $P für den aktuellen Pfad (path, siehe Verzeichnisstruktur) und $G für das Größer-als-Zeichen „>“, eine typische Ausgabe direkt nach dem Start von MS-DOS ist etwa C:\>. Auf frühen Versionen von DOS wurde der Pfad weggelassen, das entspricht PROMPT $G und ergibt immer >.
Unter den meisten Unix-Shells lässt sich der Prompt in ähnlicher Weise über die Umgebungsvariable PS1 (primärer Prompt) und PS2 (sekundärer Prompt) festlegen. Ein Beispiel bei der Bourne-again shell, kurz Bash:
In diesem Beispiel wird fortan der Name des Rechners (hostname) bis zum ersten Punkt (\h), gefolgt vom At-Zeichen (@), gefolgt vom aktuellen Arbeitsverzeichnis (current working directory, \w), einem Leerzeichen , dem Datum (date, \d), wieder einem Leerzeichen , der Uhrzeit (time, \t) und einem Größer-als-Zeichen > als Prompt der primären Shell ausgegeben.
Die Voreinstellung unter unixoiden Systemen ist meist derart, dass sich sowohl eine primäre von einer sekundären Shell sowie eine Benutzer- von einer root-Shell unterscheiden lässt. Unter Bash ist letzteres beispielsweise $ für einen regulären Benutzer (mit eingeschränkten Rechten) und # für den Benutzer root.
Um die Aufmerksamkeit des Benutzers auf den Ort zu lenken, an dem eine Tastatureingabe landet, folgt hinter dem zuletzt ausgegebenen Prompt-Zeichen oft ein blinkender Cursor. Bei grafischen Oberflächen, etwa dem Fenster einer Terminalemulation, blinkt der Cursor meist nur dann, wenn das Fenster auch den Fokus hat und eine Texteingabe auch wirklich dorthin geleitet wird. Alternativ zum Blinken werden auch Blockcursor genutzt und durch Farben das aktive Fenster und damit der aktive Prompt markiert.

## Großrechner

Auf vielen Großrechnern, etwa dem System/360 von IBM, wurden Time-Sharing-Systeme eingesetzt. Ein Beispiel dafür ist das Michigan Terminal System (MTS), das zwischen 1967 und 1999 auf verschiedenen Universitäten im Einsatz war. Das MTS konnte auf zwei Arten genutzt werden: im batch mode ohne weitere Interaktion mit dem Benutzer, oder im terminal mode, also per interaktivem Zugriff über einen Terminal. In diesem interaktiven Modus werden unterschiedliche prefix characters verwendet (zu deutsch in etwa vorangestellte Schriftzeichen), die den Benutzer zu einer Eingabe auffordern: englisch „prompt the user for input“. Auf dem MTS waren dies:
prefix characters des Michigan Terminal System :
| Zeichen | Modus oder Programm | Beschreibung |
| # | MTS command mode | Eingabepräfix des MTS, aber auch bei Ausgaben des MTS vorangestellt |
| ? | allgemeines Eingabepräfixzeichen (prompting prefix character) | Beispiel: Eingabepräfix vom $CALC-Kommando |
| : | MTS-Dateieditor | |
| > | $LIST und $COPY | Ausgabe- und Eingabepräfix |
| + | Symbolic Debugging System (SDS) | |
| . | system loader | Ausgaben des Loader |
| - | $SYSTEMSTATUS-Kommando | |
| @ | MTS message system | |
| | leeres Zeichen (blank); Benutzerprogramme | |
Das Präfix ist ein wichtiger Indikator, in welchem Modus oder in welchem Programm sich das System gerade befindet. Startete man beispielsweise mit $CALC die Rechnerfunktion, konnten nur noch arithmetische Eingaben verarbeitet werden, bis die Rechnerfunktion mit dem Kommando STOP wieder beendet wurde – erst dann waren die MTS-Funktionen wieder verfügbar. Durch das andere Prompt-Präfix ist jedoch jederzeit ersichtlich, in welchem Modus sich das System befindet und welche Eingaben daher möglich sind.
Beispiel (Eingaben sind fett dargestellt, die Eingabetaste ist hier mittels ↵ angezeigt und wird vom System nicht ausgegeben):
Mit dem Kommando SET PFX=OFF konnte der Prompt auch ausgeschaltet werden, was z. B. für den Ausdruck eines Berichts nützlich sein konnte.