
Ich verwende das gnome-terminal
mit Bash, und wenn ich einen Befehl habe, der über die Zeile hinausgehen soll, bleibt er einfach in derselben Zeile. Also statt:
echo "abcdefghijklmnopqrstuvwxyz"
ich würde bekommen
opqrstuvwxyz""abcdefghijklmn
Oder so ähnlich. Wenn ich jedoch die Eingabetaste drücke, funktioniert der Befehl trotzdem. Ich glaube, es hat etwas mit meiner PS1-Variable zu tun, aber ich weiß nicht, was damit nicht stimmt. Hier ist es:
export PS1='\e[1;35m[\u:\w]\$\e[0;35m '
Antwort1
Das hier scheint in gewisser Weise damit zusammenzuhängen:
Auf der Manpage von Bash wird empfohlen, die
tput
Ausgabe in einzuschließen. Dadurch kann Bash nicht druckbare Zeichen ignorieren und die Größe der Eingabeaufforderung korrekt berechnen.\[ \]
„Die tput
Ausgabe“ sieht in Ihrem Fall so aus: \e[1;35m
, \e[0;35m
(es gibt zwei separate Fragmente, die umbrochen werden müssen). Sie könnten auch als \033[1;35m
und geschrieben werden \033[0;35m
. Im Allgemeinen müssen Sie jede nicht druckbare Sequenz umbrochen werden.
Ich habe Folgendes geändert PS1
:
export PS1='\[\e[1;35m\][\u:\w]\$\[\e[0;35m\] '
und bei mir scheint es ohne Probleme zu funktionieren.