Why doesn't `echo abc^H` just print `ab`?
backspace is only moving the cursor backward.
backspace (or delete or whatever character depending on the configuration) deletes the last printed character only when these conditions are met:
- it is typed on the keyboard, not a command output like
echo
in your example - the terminal device is in cooked mode (the usual case)
If you want to erase the c in your example, you need to overwrite it by another character, for example:
echo "abc^H "