Nehmen wir an, ich bin auf einer neuen Installation von Debian, Jessie (oder Wheezy). Als normaler Benutzer, habe ich die Eingabeaufforderung in der /etc/bash.bashrc
Datei definiert bekam, außer Kraft setzen schließlich durch die in meinem /home/foobar/.bashrc
Debian .bashrc: prompt PS1
Ok, cool, so muss ich etwas wie folgt aus: [email protected]:~$
Nun, ich versuche, zu verstehen, den Code unten: scheint
# If this is an xterm set the title to [email protected]:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\[email protected]\h: \w\a\]$PS1"
;;
*)
;;
esac
Wie Sie sehen können, die PS1 Variable (= die Eingabeaufforderung) wieder zu overrided (Ursache ja ich in einem xterm
bin). Aber ich kann nicht bekommen, warum wir am Ende der Linie noch ein $PS1
haben!
PS1="a\[\e]0;${debian_chroot:+($debian_chroot)}\[email protected]\h: \w\a\]b$PS1 c"
Und jetzt, ich habe die seltsame Aufforderung unter:
Um dies zu erhalten, I 3 Buchstaben a
b
c
in dieser Zeile gesetzt haben
[email protected]:~$ c
So scheint dass die fast ganze Linie nicht benutzt wird, alles zwischen den Boxen.
- Ist das eine Art bedingte Aussage?
- Was ist eigentlich der Zweck dieser Linie?
- Warum der Kommentar über den Titel des Xterm Windows sprechen, aber scheint nur die PS1 zu überschreiben? Ich führe dieses xterm durch
PuTTY
; in ubuntu, ist diese Linie ganz andersPROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
Es ist einer von Debians langjährigen Fehlern, die Dateien im Benutzerhaus zu durcheinander zu bringen. Die Bedingungsanweisung ist Bashs Parametererweiterung, die hier schön erklärt wird: http://wiki.bash-hackers.org/syntax/pe – ceving
Dies könnte nützlich sein, um zu verstehen, wie man die Bash-Eingabeaufforderung optimiert: http: //www.tldp .org/HOWTO/Bash-Prompt-HOWTO/ – ceving
Die '$ PS1' am Ende ist da, um PS1 zu erlauben, vorher definiert zu werden und das fügt Text nur vor, anstatt es zu ersetzen. –