Se ricordo bene, ^H
significa Backspace . L'ho generato premendo CTRL+V , CTRL+H .
Quindi il ^H
dovrebbe rimuovere l'ultimo carattere, poiché è lo stesso di Backspace e dovrebbe agire proprio come se avessi premuto Backspace in questa posizione.
Perché l'output di echo abc^H
resta abc
e non ab
?
Risposta accettata:
backspace sta solo spostando il cursore indietro.
backspace (o elimina o qualunque carattere a seconda della configurazione) cancella l'ultimo carattere stampato solo quando sono soddisfatte queste condizioni:
- è digitato sulla tastiera, non un output di comando come
echo
nel tuo esempio - il dispositivo terminale è in modalità cotta (caso normale)
Se vuoi cancellare il c nel tuo esempio, devi sovrascriverlo con un altro carattere, ad esempio:
echo "abc^H "