Como discutido nos comentários, o problema é onde você deixou o cursor. Por exemplo:
goldilocks@home> echo -n 1234; echo -ne "\r56"
56goldilocks@home>
O que aconteceu é o primeiro echo
escreveu "1234", então o segundo eco voltou ao início da linha e imprimiu "56" e saiu. O cursor permaneceu após o 6, e a próxima coisa que aconteceu foi que o shell imprimiu o prompt de comando, sobrescrevendo "34". Se você incluiu uma nova linha no segundo eco (ou removeu a opção -n
, para que o eco imprima uma nova linha automaticamente), você obteria:
goldilocks@home> echo -n 1234; echo -e "\r56"
5634
goldilocks@home>
O cursor moveu-se para baixo de uma linha, deixando o "34" para trás.