Wenn ich echo -ne "AA \ x08A" verwende, ist die Ausgabe AA, da das Rückschrittzeichen und ein A entfernt werden.
Es sieht nur so aus, weil Sie die Ausgabe auf das Terminal drucken und Rücktaste in diesem Fall eine besondere Bedeutung hat: Löschen Sie das vorherige Zeichen ähnlich dem, was Sie durch Drücken der Rücktaste auf dem Tastenfeld erzielen. Das heißt, es wird das erste A, das zweite A angezeigt, das zweite A gelöscht und nach dem ersten A zurück und das 4. Zeichen angezeigt, dh A:
$ echo -ne "AA\x08A" AA
In der Realität werden jedoch alle 4 Oktette gedruckt - als Anzeige mit hd
(oder hexdump
oder xxd
...) wird Folgendes angezeigt :
$ echo -ne "AA\x08A" | hd 00000000 41 41 08 41 |AA.A|
Die gleichen 4 Zeichen werden auch in einem anderen Programm gedruckt, beispielsweise in Ihrem verwundbaren oder einem Perl-Skript:
$ echo -ne "AA\x08A" | perl -e 'print unpack("H*",<STDIN>),"\n"' 41410841