Bash-Terminal umbricht Text nicht richtig

Bash-Terminal umbricht Text nicht richtig

Ich verwende das gnome-terminalmit 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 tputAusgabe in einzuschließen. Dadurch kann Bash nicht druckbare Zeichen ignorieren und die Größe der Eingabeaufforderung korrekt berechnen.\[ \]

Quelle.

„Die tputAusgabe“ 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;35mund 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.

verwandte Informationen