Bash-Problem Mac OS Terminal

Hallo, als ich den Aufwärtspfeil drückte, um den vorherigen Befehl anzuzeigen, wurde der aktuelle Befehl von der Hälfte neu geschrieben.

Beispiel:

21 /usr/local/sphinx/etc >  /usr/local/sphinx/bin/search --config /usr/local/sphinx/etc/sphinx-blog.conf php

und wenn ich auf den Pfeil nach oben drücke, wird angezeigt:

21 /usr/local/sphinx/etc >  /usr/local/sudo /usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx-blog.conf --all

und "/usr/local/" vor SUDO ist vom vorherigen Befehl. Wisst ihr wo das Problem liegen soll? Hier ist meine Eingabeaufforderungseinstellung:

PS1="\# \e[32;1m\w > \e[0m "
und wenn ich BACKSPACE benutze, lösche ich bis zu 21 /usr/local/sphinx/etc > /usr/local/ ich kann /usr/local/ nicht löschen
Könnten Sie bitte readauf der Befehlszeile ausführen und dann den Aufwärtspfeil drücken? (Sie können mit Strg + C beenden read) Theoretisch sollte dies ^[[Aoder \e[A(rep. ^[[Boder \e[Bfür den Abwärtspfeil) ergeben. Hast du vielleicht bind für deine Pfeiltasten konfiguriert (zB im ~/.bash_profile)?
Ich versuchte es18 ~ > /usr/local/read ^[[A^[[B^[[A^[[A^[[A^[[A^[[B^[[B^[[B
Alle diese Zeichen erschienen, als Sie nur einmal den Pfeil nach oben gedrückt haben?? Wenn ja, dann ist @Asmus richtig und etwas stimmt nicht mit Ihrer Konfiguration.

Antworten (1)

Ich habe herumprobiert und es schließlich geschafft, den Fehler zu finden: Sie müssen noch mehr Escape-Sequenzen in Ihrer PS1 verwenden - das sollte funktionieren:

export PS1="\# \[\e[32;1m\]\w > \[\e[0m\]"

Beachten Sie das zusätzliche \[und , \]das die Farb-Escape-Sequenzen umschließt.