Используйте возврат каретки(\r
). Этот специальный символ (, оставшийся со времен механических пишущих машинок ), перемещает курсор обратно в начало строки. Затем вам нужно столько пробелов, сколько сообщение, которое вы хотите удалить (, это перезапишет сообщение ), а затем второй возврат каретки, чтобы вернуться к началу перед печатью следующего сообщения. Примерно так:
#!/bin/bash
echo foo
read -n 1 -p 'how are you ? ' var
if [ "$var" == "y" ]
then
printf '\r \rHave fun\n'
else
printf '\r \rGo to Doctor\n'
fi
Запуск скрипта выше распечатывает:
$ foo.sh
foo
Have fun