1
#!/bin/bash
echo "hello^H^H"   #hello
echo "hello^H^H "  #hel o

コンソールで ^H が文字を削除することは知っています。しかし、なぜ最初のエコーは効果がなく、2 番目のエコーは "he o" になるのでしょうか。

4

2 に答える 2

4

バックスペースは、画面に表示されているものを実際に消去することなく、カーソルを 1 つ右に移動するだけです。2 番目の命令だけが、文字列の末尾のスペースで上書きして 4番目の文字を実際に消去します。

私はそれを視覚化しようとします:

$ echo "hello^H^H"
hello
   ^
   `-- cursor position
$ echo "hello^H^H "
hel o
    ^
    `-- cursor position
于 2013-08-04T10:06:45.943 に答える
0

$ echo "hello^H^H" hello ^ -- cursor position $ echo "hello^H^H " hel o ^ -- カーソル位置

于 2016-05-23T11:44:12.963 に答える