Ich frage mich, warum das Backspace-Zeichen in gängigen Linux-Terminals die Zeichen nicht wirklich löscht, wenn sie gedruckt werden (was normalerweise funktioniert, wenn sie getippt werden).
Dies funktioniert wie erwartet:
$ echo -e "abc\b\b\bxyz"
xyz
( \b
als Backspace ausgewertet wird, kann auch eingefügt werden als Ctrl + V Ctrl + H - dargestellt als ^H
( 0x08
))
aber wenn nach den Backspaces weniger Zeichen stehen, zeigt sich das seltsame Verhalten:
$ echo -e "abc\b\b\bx"
xbc
verhält sie sich wie die linke Pfeiltaste anstelle der Rücktaste:
$ echo -e "abc\e[D\e[D\e[Dx"
xbc
Löschen der Zeile zurück funktioniert normal:
$ echo -e "abc\e[1Kx"
x
In der Tat, wenn ich tippe Ctrl + V Backspace im Terminal, ^?
( 0x7f
) ergibt sich anstelle von ^H
ist dies Del ascii-Zeichen, aber Ctrl + V Del produziert <ESC>[3~
aber das ist eine andere Geschichte
Kann jemand erklären, warum die gedruckte Rücktaste die Zeichen nicht löscht?
(Meine Umgebung ist xterm Linux und einige andere Terminal-Emulatoren, $TERM
== xterm
versucht vt100
, Linux
auch)