为什么`echo abc^H` 不只打印`ab`?

Mic*_*ael 7 shell terminal special-characters

我记得,^H意思是Backspace。我通过按CTRL+V,生成它CTRL+H

所以^H应该删除最后一个字符,因为它Backspace与我Backspace在这个位置按下一样,它的作用应该是一样的。

为什么echo abc^H保留的输出abc而不是ab

jll*_*gre 17

backspace 只是向后移动光标。

backspace(或delete任何字符,取决于配置)仅在满足以下条件时删除最后打印的字符:

  • 它是在键盘上输入的,而不是像echo您的示例中那样的命令输出
  • 终端设备处于煮熟模式(通常情况下)

如果要删除c示例中的 ,则需要用另一个字符覆盖它,例如:

echo "abc^H "
Run Code Online (Sandbox Code Playgroud)

  • @Rush:确保通过键入`Ctrl-V`、`Ctrl-H` 来输入`^H` (2认同)