Por que não 'echo abc ^ H' apenas imprime 'ab'?

7

Se bem me lembro, ^H significa Backspace . Eu gerava pressionando CTRL + V , CTRL + H .

Portanto, o ^H deve remover o último caractere, pois é o mesmo que o Backspace e deve agir como se eu tivesse pressionado Backspace nessa posição. / p>

Por que a saída de echo abc^H permanece em abc e não em ab ?

    
por Michael 02.05.2012 / 21:23

2 respostas

16

backspace está apenas movendo o cursor para trás.

backspace (ou delete ou qualquer caractere dependendo da configuração) exclui o último caractere impresso somente quando estas condições são atendidas:

  • é digitado no teclado, não uma saída de comando como echo no seu exemplo
  • o dispositivo terminal está no modo cozido (o caso usual)

Se você quiser apagar o c no seu exemplo, você precisa sobrescrevê-lo por outro caractere, por exemplo:

echo "abc^H "
    
por 02.05.2012 / 22:00
-2

stty erase ^H que deve resolvê-lo.

    
por 02.05.2012 / 21:46