TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #311 1.13K
Как красиво ждать с прогрессом в терминале

Иногда скрипту нужно подождать: пауза перед перезапуском сервиса, таймер перед завершением работы, задержка в цикле. Просто sleep - бывает скучно. Сделаем задержку с индикатором прогресса прямо в терминале.

▪️ Вариант 1: простой таймер с индикатором прогресса


wait_with_progress() {
local seconds=$1
echo -n "Ожидание $seconds сек: ["
for ((i = 0; i < seconds; i++)); do
echo -n "#"
sleep 1
done
echo "] Готово!"
}

wait_with_progress 5


Вывод:


Ожидание 5 сек: [#####] Готово!


▪️ Вариант 2: "бегающий" индикатор во время ожидания


spinner_wait() {
local pid=$!
local delay=0.1
local spinstr='|/-\'
echo -n "Ждем... "
while kill -0 $pid 2>/dev/null; do
local temp=${spinstr#?}
printf " [%c] " "$spinstr"
spinstr=$temp${spinstr%"$temp"}
sleep $delay
printf "\b\b\b\b\b\b"
done
echo "Готово!"
}

# Пример: запуск команды с ожиданием
(sleep 5) & spinner_wait


Этот индикатор крутится, пока выполняется команда.

▪️ Вариант 3: таймер обратного отсчета


countdown() {
local sec=$1
while [ $sec -gt 0 ]; do
printf "\rОсталось: %2d сек..." "$sec"
sleep 1
((sec--))
done
echo -e "\rВремя вышло! "
}

countdown 10


Это удобно для сценариев с обратным отсчетом до перезапуска или отката.


⭐️ Также можно использовать tput civis и tput cnorm для скрытия/показа курсора:


tput civis # скрыть
# ...индикатор...
tput cnorm # вернуть


BashTex 📱 #bash
  • 🔥 11
More from @bash_tex
  1. Oct 9, 2026BashTex 📱 #мем
  2. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  3. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  4. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
  5. Oct 5, 2026name_to_handle_at() - как получить файловый объект без обычного пути В Linux обычно обраща…
  6. Oct 2, 2026madvise() - как процесс подсказывает ядру, как он собирается использовать память Когда про…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →