GNU/Linux >> Znalost Linux >  >> Linux

Proč `echo Abc^h` prostě nevytiskne `ab`?

Pokud si vzpomínám, ^H znamená Backspace . Vygeneroval jsem jej stisknutím CTRL+V , CTRL+H .

Takže ^H by měl odstranit poslední znak, protože je stejný jako Backspace a mělo by to fungovat stejně, jako bych stiskl Backspace na této pozici.

Proč se výstup echo abc^H zůstávají abc a ne ab ?

Přijatá odpověď:

backspace pouze posouvá kurzor zpět.

backspace (nebo smazat nebo jakýkoli znak v závislosti na konfiguraci) vymaže poslední vytištěný znak pouze tehdy, jsou-li splněny tyto podmínky:

  • zapisuje se na klávesnici, nikoli jako výstup příkazu jako echo ve vašem příkladu
  • koncové zařízení je v režimu vaření (obvyklý případ)

Pokud chcete vymazat c ve vašem příkladu jej musíte přepsat jiným znakem, například:

echo "abc^H "

Linux
  1. Jak číst pouze jeden znak ve skriptu shellu

  2. Linux:Tisk konkrétního rozsahu znaků na každý řádek

  3. Proč nemůžete jednoduše dd CD Audio jako obyčejné datové CD?

  1. Proč se Tilda (~) nerozšíří uvnitř dvojitých uvozovek?

  2. Proč tento soubor neukáže ‚najít‘?

  3. Proč skript Bash nerozpozná aliasy?

  1. Proč regulární výraz funguje v X, ale ne v Y?

  2. Linux – proč používáme Su – a nejen Su?

  3. Proč muž v 00:30 tiskne „gimme Gimme Gimme“?