(9 Antworten)
Vor 3 Jahren geschlossen.
Wenn ich anfange, mir den Befehlsverlauf anzusehen, werden oft einige der Zeichen eines angezeigten Befehls nicht gelöscht, zum Beispiel:
Was passiert:
prompt$ some_command
prompt$ some_commanother_command
Was hätte passieren sollen:
prompt$ some_command
prompt$ another_command
Ich kann diese Zeichen nicht löschen und bash ignoriert sie beim Ausführen des Befehls. Sie verschwinden auch, wenn eine neue Eingabeaufforderung angezeigt wird (nachdem Sie Enter
gedrückt haben zum Beispiel).
Ich habe andere Leute gefragt, die an meinem Arbeitsplatz mit Linux arbeiten, und sie sagten, dass sie dieses Problem manchmal auch haben, aber sie hatten keine Idee, wie sie dieses Problem lösen könnten.
Ich habe Ubuntu 11.10 und verwende Guake. Hier ist mein PS1
:
e[0;31mu A ${PWD##*/}e[0;32m$(parse_git_branch)e[0;31m$e[m
wobei parse_git_branch
ist
parse_git_branch () {
git name-rev HEAD 2> /dev/null | sed 's#HEAD (.*)# (1)#'
}
Soweit ich weiß, haben meine Kollegen dieses Problem auch mit weniger „schickem“ PS1.
Akzeptierte Antwort:
Verwenden Sie [...]
um die Teile von PS1 herum, die die Länge 0 haben. Es hilft Bash, die Länge des Prompts richtig zu bekommen. Selbst mit dieser Maßnahme kann Ihre Befehlszeile bei der Verwendung von Multibyte-Zeichen beschädigt werden (zumindest meine). Drücken Sie Strg+L hilft auch in solchen Fällen (löscht aber gleichzeitig den Bildschirm).