Ich habe eine ausgefallene zweizeilige PS1
Bash-Eingabeaufforderung mit Servernamen, Uhrzeit, Benutzername und anderen nützlichen Variablen konfiguriert .
PS1="\n\[\033[1;34m\]\342\226\210\342\226\210 \u @ $SERVER_NAME""$BBlue"" \w""$Color_Off \n\[\033[0;36m\]\342\226\210\342\226\210 \d \t $ \[\033[0;39m\]"
Vollständige Github-Quelle hier .
Das Problem ist, dass lange Zeilen häufig um sich selbst gewickelt werden, was bedeutet, dass die neue Zeile die vorherige Zeile überlappt.
Das Problem ist inkonsistent: Einige Zeilen werden korrekt umbrochen, andere nicht.
Irgendeine Idee, wie man das behebt?
Wir haben diese Lösung online gefunden, die eine schließende Klammer für Farbvariablen vorschlug:
Ändere das:
zu:
Ich habe die Änderung übernommen - hoffe, sie funktioniert wie erwartet.
quelle
\[
\]
, so dass Sie nicht nur können all ansi-Escape - Farben mit Ende ,\]
denn was , wenn es nicht ein\[
. Wenn Sie nicht druckbare Zeichen einfügen, sollten Sie diese einfach einwickeln\[
\]
(zPS1='\[\e[32;1m\] green prompt \[\e[0m\] $'
. B. ).Meine bevorzugte Lösung für das Problem der Überlappung langer Zeilen in der Bash-PS1 besteht darin,
\n
am Ende der PS1-Eingabeaufforderung (en) eine Zeile (n) zu setzen.z.B
Wenn du all meine anderen Sachen haben willst - Zeit, Benutzer, Host, Verzeichnis und Git-Zweig (!), Kannst du dies benutzen (Mac oder Linux):
/unix//a/124012/10043
quelle
if [[ $(git rev-parse --is-inside-git-dir 2> /dev/null) ]]; then branch="$( git symbolic-ref --short -q HEAD 2> /dev/null )"; fi
. Dies ist ein Standard, wenn Sie git in ein Skript einfügen und den Namen des Zweigs nach dem auswerten, was ich zuvor gelesen habe.