Beim Anschauen eines Videos habe ich Folgendes gesehen:
% more tinyUF.txt
10
4 3
3 8
6 5
Was ist dieses %
Zeichen vor dem more
Befehl?
$
Vorzeichen ändern , indem Sie angeben, export PS1=...
wo ...
das Ersatzzeichen steht.
Beim Anschauen eines Videos habe ich Folgendes gesehen:
% more tinyUF.txt
10
4 3
3 8
6 5
Was ist dieses %
Zeichen vor dem more
Befehl?
$
Vorzeichen ändern , indem Sie angeben, export PS1=...
wo ...
das Ersatzzeichen steht.
Antworten:
Dies ist die Shell-Eingabeaufforderung oder genauer gesagt die primäre Eingabeaufforderung der Shell ( es gibt mehrere ). Es ist die Art und Weise, wie die Shell sagt: " Mach weiter, ich bin jetzt bereit für Eingaben ".
Die %
Eingabeaufforderung ist in csh
-type-Shells üblich, während sh
-shells (like bash
und ksh93
) normalerweise a $
als Eingabeaufforderung verwendet.
Die Eingabeaufforderung ändert sich normalerweise #
für den Root-Benutzer, da ein ausreichend leistungsfähiger Benutzer durch eine alternative Eingabeaufforderung (wie es der POSIX-Standard ausdrückt) an diese Leistung erinnert werden sollte .
Die primären Eingabeaufforderungs-Shell- sh
Typen werden durch den Wert der Shell-Variablen bestimmt PS1
.
Zusammenfassung der Kommentare unten mit Ergänzungen:
Das #
Zeichen der Root-Eingabeaufforderung (von beiden sh
und csh
Shells verwendet) stimmt zufällig mit dem allgemeinen Shell-Kommentarzeichen überein. Das Kopieren und Einfügen eines Befehls als root würde den eingefügten Befehl funktionsunfähig machen, wenn die Shell-Eingabeaufforderung ebenfalls kopiert wurde. Beachten Sie, dass dies #
als Root-Eingabeaufforderung übernommen wurde, bevor die Shell eine Kommentar-Konvention hatte (Referenz: E-Mail von Doug McIlroy ).
In den es
und rc
-Shells von Plan 9 wird das ;
Zeichen als Standardeingabeaufforderung verwendet. Dies hat zur Folge, dass das Kopieren und Einfügen eines Befehls, einschließlich der Eingabeaufforderung, weiterhin bedeutet, dass der eingefügte Befehl gültig ist (und ausgeführt wird).
Eine Möglichkeit, eine benutzerdefinierte, aber immer noch kopierfähige Shell-Eingabeaufforderung zu aktivieren, wäre die Verwendung von : something ;
, wobei something
beispielsweise das aktuelle Verzeichnis, der aktuelle Hostname oder die aktuelle Uhrzeit verwendet werden können.
zsh
(eine Bourne-artige Shell, aber mit vielen Features aus tcsh
). Beachten Sie, dass Bourne-ähnliche und csh-ähnliche Shells normalerweise #
für Benutzer von uid 0 verwendet werden.
rc
-ähnliche Shells verwendet ;
werden (man kann die gesamte Zeile kopieren und einfügen, und das ist gültiger Shell-Code, wobei die gleiche Idee wie bei der Root- #
Eingabeaufforderung ein Kommentar ist).
#...
Zeilen Kommentare sind, wenn sie kopiert und eingefügt werden, auch wenn dies nicht beabsichtigt war. Ich weiß nicht , ob es die Absicht , die hinter war ;
in rc
entweder, obwohl ich es ist eine bequeme Folge beobachten.
export PS1=%
??