O resto das respostas são muito boas, mas só queria adicionar algumas informações extras no caso de alguém vir aqui procurando uma solução para substituir / atualizar um eco multilinha.
Então, eu gostaria de compartilhar um exemplo com todos vocês. O seguinte script foi tentado em um sistema CentOS e usa o comando "timedatectl" que basicamente imprime algumas informações detalhadas de tempo de seu sistema.
Decidi usar esse comando porque sua saída contém várias linhas e funciona perfeitamente para o exemplo abaixo:
#!/bin/bash
while true; do
COMMAND=$(timedatectl) #Save command result in a var.
echo "$COMMAND" #Print command result, including new lines.
sleep 3 #Keep above's output on screen during 3 seconds before clearing it
#Following code clears previously printed lines
LINES=$(echo "$COMMAND" | wc -l) #Calculate number of lines for the output previously printed
for (( i=1; i <= $(($LINES)); i++ ));do #For each line printed as a result of "timedatectl"
tput cuu1 #Move cursor up by one line
tput el #Clear the line
done
done
O acima irá imprimir o resultado de " timedatectl
" para sempre e irá substituir o eco anterior por resultados atualizados.
Devo mencionar que este código é apenas um exemplo, mas talvez não seja a melhor solução para você dependendo de suas necessidades. Um comando semelhante que faria quase o mesmo (pelo menos visualmente) é " watch -n 3 timedatectl
".
Mas essa é uma história diferente. :)
Espero que ajude!