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 – využití Tcp_defer_accept v reálném světě?
Jak na skript Shell vyhnout se Sigpipe, který by byl způsoben použitím uzavřeného deskriptoru souboru?