GNU/Linux >> Linux Esercitazione >  >> Linux

Perché `echo Abc^h` non stampa semplicemente `ab`?

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 "

Linux
  1. Perché The Tilde (~) non si espande all'interno di virgolette doppie?

  2. Perché "trova" non mostra questo file??

  3. Perché lo script Bash non riconosce gli alias?

  4. Perché il ~/.bash_profile non funziona?

  5. Pam_unix2 / Perché non esiste su alcune distribuzioni?

Perché "meno" non mostra output in grassetto??

Perché Cryptkeeper non funziona in 12.04?

6 motivi per cui Linux non ha più app

Come leggere solo un singolo carattere nello script di shell

Perché usiamo su - e non solo su?

Perché qualcuno dovrebbe scegliere FreeBSD su Linux?