OK, depois de experimentar um pouco de trap
, tput
e terminfo
, acho que descobri ( graças a outra pergunta ).
Para uma linha de comando padrão com apenas 1 linha, por exemplo, bash-4.3$ echo something here
trap 'tput dl1; tput cuu1' SIGINT
é o que eu precisava.
bash irá:
- elimine a linha
- mova o cursor para cima
e finalmente iniciar uma nova linha (daí o mover o cursor para cima ).
Se sua linha de comando tiver 2 ou mais linhas, por exemplo
name@host /path/to/some/dir
$ echo something here
Em seguida, outro tput dl1; tput cuu1
precisará ser adicionado para excluir a linha extra - > trap 'tput dl1; tput cuu1; tput dl1; tput cuu1' SIGINT
Acho que vou ver se isso tem algum efeito adverso.