Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Linux

Как сделать паузу с отображением оставшегося времени

15.08.2020 20:29


29.05.2020 13:27
OlegON
 
В Linux есть замечательная утилитка sleep, которая идеальна для небольших временных интервалов, но, если речь идет о паузе в часах, то иногда начинается путаница, что это за консоль и когда ты вообще ее запустил, да когда теперь она начнет работать... Во избежание этого накидал тупой скриптик. Параметр единственный - пауза в часах. Отображает оставшееся время в формате HH:MM, при необходимости можете и поправить, что нужно..
Код:
#!/bin/bash
m=${1}*60*60
Floor () {
  DIVIDEND=${1}
  DIVISOR=${2}
  RESULT=$(( ( ${DIVIDEND} - ( ${DIVIDEND} % ${DIVISOR}) )/${DIVISOR} ))
  echo ${RESULT}
}
Timecount(){
        s=${1}
        HOUR=$( Floor ${s} 60/60 )
        s=$((${s}-(60*60*${HOUR})))
        MIN=$( Floor ${s} 60 )
     while [ $HOUR -ge 0 ]; do
        while [ $MIN -ge 0 ]; do
                printf "\033[2J\033[HSleep time: %02d:%02d\n" $HOUR $MIN
                sleep 60
                MIN=$((MIN-1))
        done
        MIN=59
        HOUR=$((HOUR-1))
     done
}
Timecount $m

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.