#!/bin/bash
echo "hello^H^H" #hello
echo "hello^H^H " #hel o
コンソールで ^H が文字を削除することは知っています。しかし、なぜ最初のエコーは効果がなく、2 番目のエコーは "he o" になるのでしょうか。
バックスペースは、画面に表示されているものを実際に消去することなく、カーソルを 1 つ右に移動するだけです。2 番目の命令だけが、文字列の末尾のスペースで上書きして 4番目の文字を実際に消去します。
私はそれを視覚化しようとします:
$ echo "hello^H^H"
hello
^
`-- cursor position
$ echo "hello^H^H "
hel o
^
`-- cursor position
$ echo "hello^H^H" hello ^
-- cursor position
$ echo "hello^H^H "
hel o
^
-- カーソル位置