Остальные ответы довольно хороши, но просто хотел добавить дополнительную информацию на случай, если кто-то придет сюда в поисках решения для замены / обновления многострочного эха.
Итак, я хотел бы поделиться со всеми вами примером. Следующий сценарий был опробован в системе CentOS и использует команду «timedatectl», которая в основном выводит некоторую подробную информацию о времени вашей системы.
Я решил использовать эту команду, поскольку ее вывод содержит несколько строк и отлично работает для примера ниже:
#!/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
Вышеупомянутое напечатает результат "timedatectl " навсегда и заменит предыдущее эхо обновленными результатами.
Я должен упомянуть, что этот код является только примером, но, возможно, не лучшим решением для вас в зависимости от ваших потребностей. Похожая команда, которая будет делать почти то же самое (по крайней мере, визуально): "watch -n 3 timedatectl ».
Но это другая история. :)
Надеюсь, это поможет!