Например, bash:
#!/bin/bash
echo -ne '##### (33%)\r'
sleep 1
echo -ne '############# (66%)\r'
sleep 1
echo -e '####################### (100%)\r'
Флаги:
n - не переводить на новую строку после вывода
e - включение интерпретации экранированных символов (\r)
\r в строке означает возврат каретки (в крайнее левое положение).
Дальше, после слипа, поверх строки пишем новую.