터미널에 카운트 다운 또는 스톱워치 타이머를 표시하는 방법이 있습니까?


144

Linux 터미널에서 실시간 카운트 다운 타이머를 표시하려면 어떻게해야합니까? 기존 앱이 있거나 더 좋은 방법으로 하나의 라이너가 있습니까?

답변:


184

왜 필요한지 잘 모르겠습니다. beep원하는 것이 스톱워치라면 다음과 같이 할 수 있습니다.

while true; do echo -ne "`date`\r"; done

그것은 당신에게 실시간으로 지나가는 초를 보여줄 것이고 당신은 Ctrl+로 그것을 멈출 수 있습니다 C. 더 높은 정밀도가 필요한 경우이를 사용하여 나노초를 제공 할 수 있습니다.

while true; do echo -ne "`date +%H:%M:%S:%N`\r"; done

마지막으로, 모든 것이 0에서 시작하여 커지기 시작하는 "스톱워치 형식"을 원한다면 다음과 같이 할 수 있습니다.

date1=`date +%s`; while true; do 
   echo -ne "$(date -u --date @$((`date +%s` - $date1)) +%H:%M:%S)\r";
done

카운트 다운 타이머 (원래 질문에서 요청한 것이 아님)의 경우 다음을 수행 할 수 있습니다 (초를 적절히 변경)

seconds=20; date1=$((`date +%s` + $seconds)); 
while [ "$date1" -ge `date +%s` ]; do 
  echo -ne "$(date -u --date @$(($date1 - `date +%s` )) +%H:%M:%S)\r"; 
done

bash (또는 원하는 쉘) 함수를 사용하여 이들을 간단한 명령으로 결합 할 수 있습니다. bash에서 다음 행을 추가하십시오 ~/.bashrc( sleep 0.1시스템이 각 실행 사이에 1/10 초 동안 대기하여 CPU를 스팸하지 않도록하십시오).

function countdown(){
   date1=$((`date +%s` + $1)); 
   while [ "$date1" -ge `date +%s` ]; do 
     echo -ne "$(date -u --date @$(($date1 - `date +%s`)) +%H:%M:%S)\r";
     sleep 0.1
   done
}
function stopwatch(){
  date1=`date +%s`; 
   while true; do 
    echo -ne "$(date -u --date @$((`date +%s` - $date1)) +%H:%M:%S)\r"; 
    sleep 0.1
   done
}

그런 다음 다음을 실행하여 1 분의 카운트 다운 타이머를 시작할 수 있습니다.

countdown 60

다음을 사용하여 2 시간 동안 카운트 다운 할 수 있습니다.

countdown $((2*60*60))

또는 하루 종일 다음을 사용합니다.

countdown $((24*60*60))

다음을 실행하여 스톱워치를 시작하십시오.

stopwatch

일, 시간, 분 및 초를 처리 할 수 ​​있어야하는 경우 다음과 같이 할 수 있습니다.

countdown(){
    date1=$((`date +%s` + $1));
    while [ "$date1" -ge `date +%s` ]; do 
    ## Is this more than 24h away?
    days=$(($(($(( $date1 - $(date +%s))) * 1 ))/86400))
    echo -ne "$days day(s) and $(date -u --date @$(($date1 - `date +%s`)) +%H:%M:%S)\r"; 
    sleep 0.1
    done
}
stopwatch(){
    date1=`date +%s`; 
    while true; do 
    days=$(( $(($(date +%s) - date1)) / 86400 ))
    echo -ne "$days day(s) and $(date -u --date @$((`date +%s` - $date1)) +%H:%M:%S)\r";
    sleep 0.1
    done
}

점을 유의 stopwatch내가 정말 24 시간을 기다려야하고 싶지 않았기 때문에 함수가 일 동안 테스트되지 않았습니다. 작동하지만 작동하지 않는 경우 알려주십시오.


9
나는 .zshrc당신의 대답을 읽은 후에이 멋진 기능들을 오른쪽에 추가 했습니다. 오늘 countdown은 처음으로 사용 했으며 CPU 사용량이 다소 높았습니다. 나는 sleep 0.1(모든 시스템에서 수초의 수면 시간이 지원되는지 모르겠다) 추가하여 크게 향상시켰다. 단점은 물론 정확도가 떨어질 수 있지만 최대 편차로 살 수 있습니다. 100ms.
mpy

언급 해 주셔서 감사합니다. 이에서를 할 때 나는 ~ 3 %의 CPU 사용량을 얻고있다 bash(비록 내가 그와 함께 살 수 있습니다 내가 기대하고 나 또한 내 자신의 .bashrc에 잠을 추가 한보다 높은).
terdon

3
이 답변을 찾았습니다. 스톱워치 기능에서 에코 명령문의 시작 부분에 캐리지 리턴을 넣는 것이 스톱워치를 종료하면 현재 스톱워치 시간을 덮어 쓰지 않았 음을 의미하므로 편리합니다. echo -ne "\ r $ (date -u --date @ $ (( date +%s-$ date1)) + % H : % M : % S) ";
mkingston

3
@chishaku : OS X에서 이것은 저에게 효과가있는 것 같습니다 : echo -ne "$(date -ju -f %s $(($date1 - date + % s )) +%H:%M:%S)\r";
user1071847

1
Sox 패키지를 사용 하면 카운트 다운이 끝날 때 멋진 사운드를 추가합니다 play -q -n synth 2 pluck C5.
Pablo A

94

내가 가장 좋아하는 방법은 다음과 같습니다.

스타트:

time cat

중지:

ctrl+c

@wjandrea가 아래에 언급했듯이 다른 버전이 실행됩니다.

time read

을 눌러 Enter중지



8
비슷하지만 Enter 키를 눌러 중지 할 수 있습니다.time read
wjandrea

10
time readzsh에서는 실패하지만 time (read)작동합니다.
Sparhawk

그러나 문제는 취소하거나 끝내지 않으면 시간을 볼 수 없다는 것입니다. 그런 다음 타이머를 다시 시작하면 타이머가 새로 시작됩니다.
Zelphir Kaltstahl

39

나는 똑같은 것을 찾고 있었고 파이썬에서 더 정교한 것을 작성했다.

간단한 10 초 카운트 다운이 제공됩니다.

sudo pip install termdown
termdown 10

출처 : https://github.com/trehn/termdown


1
@DoktoroReichard : 글쎄, 이것은 다운로드 링크입니다.
harrymc 2016

1
@ Suhaib : 그것은 나를 위해해야합니다. 자세한 내용은 GitHub에서 문제를 제기하십시오.
trehn 2016 년

1
나는 그것을 사랑 해요 -이 바로 내 골목
웨인 베르너

1
아주 좋은, 나는 ASCII 좋아
기예르모

1
정말 멋지다! 😄
orschiro

13

나는 이것을 사용했다 :

countdown()
(
  IFS=:
  set -- $*
  secs=$(( ${1#0} * 3600 + ${2#0} * 60 + ${3#0} ))
  while [ $secs -gt 0 ]
  do
    sleep 1 &
    printf "\r%02d:%02d:%02d" $((secs/3600)) $(( (secs/60)%60)) $((secs%60))
    secs=$(( $secs - 1 ))
    wait
  done
  echo
)

예:

 countdown "00:07:55"

여기 소스가 있습니다.


2
POSIX 호환-OS X에서 작동 :)
djule5

13
sh-3.2# man leave

15 분 동안 타이머를 설정하다

sh-3.2# leave +0015
Alarm set for Thu Nov  3 14:19:31 CDT 2016. (pid 94317)
sh-3.2#

편집 : 나는 많은 링크가 열려 있었고 이것이 osx에만 해당된다고 생각했습니다. 죄송합니다. 다른 사람들이 BSD에서 휴가를 알 수 있도록 내 대답을 그대로 둡니다.


1
leave는 Linux에서도 작동하지만 먼저 기본 리포지토리에서 leave 프로그램을 설치해야합니다.
karel

6

이것은 100 분의 1 초의 스톱워치입니다.

#!/usr/bin/awk -f
function z() {
  getline < "/proc/uptime"
  close("/proc/uptime")
  return $0
}
BEGIN {
  x = z()
  while (1) {
    y = z()
    printf "%02d:%05.2f\r", (y - x) / 60, (y - x) % 60
  }
}


멋진 Linux 전용 솔루션! 나는 외부 전화가 부족한 것을 좋아합니다. 데비안 시스템은 / proc / uptime에 두 개의 값을 가지고 있으며, 두 번째 값은 아마도 이전의 가동 시간을 나타냅니다. 이 스크립트는 라인 5를 다음과 같이 변경하여이를 해결하도록 조정할 수 있습니다.return $1
Adam Katz

4

나는 아주 좋은 terdon의 답변을 시작부터 시간과 끝까지 시간을 표시하는 기능으로 결합했습니다. 또한 세 가지 변형이 있으므로 호출하기가 쉽고 (bash 수학을 수행 할 필요가 없음) 추상화되어 있습니다. 사용 예 :

{ ~ }  » time_minutes 15
Counting to 15 minutes
Start at 11:55:34     Will finish at 12:10:34
     Since start: 00:00:08     Till end:  00:14:51

그리고 작업 타이머와 같은 것 :

{ ~ }  » time_hours 8
Counting to 8 hours
Start at 11:59:35   Will finish at 19:59:35
     Since start: 00:32:41     Till end:  07:27:19

매우 구체적인 시간이 필요한 경우 :

{ ~ }  » time_flexible 3:23:00
Counting to 3:23:00 hours
Start at 12:35:11   Will finish at 15:58:11
     Since start: 00:00:14     Till end:  03:22:46

.bashrc에 넣을 코드는 다음과 같습니다 .

function time_func()
{
   date2=$((`date +%s` + $1));
   date1=`date +%s`;
   date_finish="$(date --date @$(($date2)) +%T )"

   echo "Start at `date +%T`   Will finish at $date_finish"

    while [ "$date2" -ne `date +%s` ]; do
     echo -ne "     Since start: $(date -u --date @$((`date +%s` - $date1)) +%H:%M:%S)     Till end:  $(date -u --date @$(($date2 - `date +%s`)) +%H:%M:%S)\r";
     sleep 1
    done

    printf "\nTimer finished!\n"
    play_sound ~/finished.wav
}

function time_seconds()
{
  echo "Counting to $1 seconds"
  time_func $1
}

function time_minutes()
{
  echo "Counting to $1 minutes"
  time_func $1*60
}

function time_hours()
{
  echo "Counting to $1 hours"
  time_func $1*60*60
}

function time_flexible()  # accepts flexible input hh:mm:ss
{
    echo "Counting to $1"
    secs=$(time2seconds $1)
    time_func $secs
}

function play_sound()  # adjust to your system
{
    cat $1 > /dev/dsp
}

function time2seconds() # changes hh:mm:ss to seconds, found on some other stack answer
{ 
    a=( ${1//:/ }) 
    echo $((${a[0]}*3600+${a[1]}*60+${a[2]})) 
}

이것을 리눅스 터미널 ( 리눅스 커맨드 라인을 통해 mp3 또는 wav 파일 재생 ) 또는 cygwin ( babun / win7에서 나를 위해 작동 ) 에서 사운드재생 하는 방법과 결합하면 알람 이있는 간단한 유연한 타이머가 있습니다 !cat /path/foo.wav > /dev/dsp


4

다른 접근법

countdown=60 now=$(date +%s) watch -tpn1 echo '$((now-$(date +%s)+countdown))'

Mac의 경우 :

countdown=60 now=$(date +%s) watch -tn1 echo '$((now-$(date +%s)+countdown))'
#no p option on mac for watch

만약 0에 도달했을 때 신호를 원한다면, 예를 들어 0이 아닌 종료 상태를 0으로 리턴 한 명령으로 신호를 만들 watch -b거나 그것을 또는 다른 것과 결합 할 수 있지만,보다 정교한 스크립트를 만들고 싶다면, 아마도 갈 길이 아닙니다. "빠르고 더러운 원 라이너"타입 솔루션에 가깝습니다.


나는 watch일반적으로 프로그램을 좋아한다 . 나는 이미 while sleep 5; do다른 효과에 대한 수많은 루프를 작성한 후에 그것을 보았습니다 . watch명백히 더 좋았습니다.


3

나는 내 자신의 쉘 스크립트를 작성했다 : github gist

#!/bin/sh
# script to create timer in terminal
# Jason Atwood
# 2013/6/22

# start up
echo "starting timer script ..."
sleep 1 # seconds

# get input from user
read -p "Timer for how many minutes?" -e DURATION
DURATION=$(( $DURATION*60 )) # convert minutes to seconds

# get start time
START=$(date +%s)

# infinite loop
while [ -1 ]; do
clear # clear window

# do math
NOW=$(date +%s) # get time now in seconds
DIF=$(( $NOW-$START ))  # compute diff in seconds
ELAPSE=$(( $DURATION-$DIF ))    # compute elapsed time in seconds
MINS=$(( $ELAPSE/60 ))  # convert to minutes... (dumps remainder from division)
SECS=$(( $ELAPSE - ($MINS*60) )) # ... and seconds

# conditional
if [ $MINS == 0 ] && [ $SECS == 0 ] # if mins = 0 and secs = 0 (i.e. if time expired)
then # blink screen
for i in `seq 1 180`; # for i = 1:180 (i.e. 180 seconds)
do
clear # flash on
setterm -term linux -back red -fore white # use setterm to change background color
echo "00:00 " # extra tabs for visibiltiy

sleep 0.5

clear # flash off
setterm -term linux -default # clear setterm changes from above
echo "00:00" # (i.e. go back to white text on black background)
sleep 0.5
done # end for loop
break   # end script

else # else, time is not expired
echo "$MINS:$SECS"  # display time
sleep 1 # sleep 1 second
fi  # end if
done    # end while loop 

1
멋진 대본, +1 아시다시피, 그것은 스톱워치가 아닌 카운트 다운 타이머입니다.
terdon

하 맞아, 그게 내가 정말로 원하는 것. 이름을 업데이트하겠습니다.
tir38 2016 년

3

아무도 sleepenh그들의 스크립트 에서 도구를 사용하지 않은 것에 놀랐습니다 . 대신 제안 된 솔루션 sleep 1은 후속 타이머 출력 또는 가능한 한 빨리 출력하는 사용 중 루프 사이 를 사용 합니다. 전자는 인쇄에 소요되는 시간이 짧기 때문에 출력이 실제로 초당 1 회 발생하지 않지만 최적이 아닌 출력보다 약간 적기 때문에 부적절합니다. 충분한 시간이 지나면 카운터는 1 초를 건너 뜁니다. 후자는 CPU를 아무 이유없이 바쁘게 유지하기 때문에 부적절합니다.

내가 가진 도구는 $PATH다음과 같습니다.

#!/bin/sh
if [ $# -eq 0 ]; then
    TIMESTAMP=$(sleepenh 0)
    before=$(date +%s)
    while true; do
        diff=$(($(date +%s) - before))
        printf "%02d:%02d:%02d\r" $((diff/3600)) $(((diff%3600)/60)) $((diff%60))
        TIMESTAMP=$(sleepenh $TIMESTAMP 1.0);
    done
    exit 1 # this should never be reached
fi
echo "counting up to $@"
"$0" &
counterpid=$!
trap "exit" INT TERM
trap "kill 0" EXIT
sleep "$@"
kill $counterpid

스크립트는 스톱워치 (중단 될 때까지 카운트 업) 또는 지정된 시간 동안 실행되는 타이머로 사용될 수 있습니다. 때문에 sleep명령이 사용되며,이 스크립트는이 같은 정밀도로 계산하기위한 기간을 지정할 수 있습니다 sleep할 수 있습니다. 데비안과 파생물에는 초 미만의 수면과 시간을 지정하는 사람이 읽을 수있는 좋은 방법이 포함됩니다. 예를 들어 다음과 같이 말할 수 있습니다.

$ time countdown 2m 4.6s
countdown 2m 4.6s  0.00s user 0.00s system 0% cpu 2:04.60 total

보시다시피, 명령은 스크립트 자체에 많은 마술없이 2 분 4.6 초 동안 정확하게 실행되었습니다.

편집 :

sleepenh 도구는 데비안에 같은 이름의 패키지와 우분투와 같은 파생물에서 비롯됩니다. 없는 배포의 경우 https://github.com/nsc-deb/sleepenh 에서 제공됩니다.

sleepenh의 장점은 루프 동안 수면 이외의 다른 것들을 처리하여 시간이 지남에 따라 발생하는 작은 지연을 고려할 수 있다는 것입니다. 하나는 것입니다 경우에도 sleep 1루프의 10 배에, 전체 실행은 조금에게 있기 때문에 실행에서 오는 작은 오버 헤드를 10 초 이상 걸릴 sleep루프를 반복합니다. 이 오류는 천천히 누적되며 시간이 지남에 따라 스톱워치 타이머가 점점 부정확 해집니다. 이 문제를 해결하려면 각 루프 반복마다 정확한 잠자기 시간을 계산해야하며, 이는 일반적으로 1 초보다 약간 작은 시간입니다 (1 초 간격 타이머의 경우). sleepenh 도구가이를 수행합니다.


나는 이것이 또한 내 대답에 어떤 이점을 제공하는지 이해하지 못합니다 sleep 0.1. 무엇입니까 sleepnh(아치 저장소에서 찾을 수 없음)와 어떻게 다릅니 sleep까? 내가 알 수있는 한, 당신은 기본적으로 위의 대답과 같은 일을하고 있습니다. 내가 무엇을 놓치고 있습니까?
terdon

@terdon Sleepenh는 여기에서 온다. github.com/nsc-deb/sleepenh 방금 말한 문제 sleep 5는 정확히 5 초 동안 잠을 자지 않는다는 것입니다. 예를 들어 time sleep 5보면 명령 실행에 5 초 이상이 걸린다는 것을 알 수 있습니다. 시간이 지남에 따라 오류가 누적됩니다. sleepenh 유틸리티를 사용하면 이러한 오류 누적을 쉽게 피할 수 있습니다.
josch

승인. 내 시스템에서 0.002 초의 오류가 표시됩니다. 정말 사람이 도구의 종류를 사용하여 밀리 초 정밀도보다 더 기대 의심하지 않지만, 당신이 적어도 당신의 대답을 편집하고 난 경우) 더 나은 이유를 설명하는 것 sleepnh보다 낫다 sleep당신은 단지 다른 답변이 사용하는 말 ( sleep 1그렇지 않은 - 어떤 , OP 만 해당 도구 및 ii) 표준 도구가 아니므로 설치 위치 및 설치 방법을 사용합니다.
terdon

1
@terdon 첫 단락 sleep과 의 차이점을 설명했습니다 sleepenh. 어쨌든, 아마 그것에 대해 충분히 명확하지 않았기 때문에 결국에는 더 확장했습니다. 밀리 초 정확도 문제는 sleep한 번만 호출하면 얻을 수있는 문제입니다 . 그들은 시간이 지남에 따라 축적되며 어느 시점에서 눈에 띄게 나타납니다. 나는 다른 사람들 만 사용한다고 말하지 않았다 sleep 1. 나는 그들이 사용 sleep 1하거나 busyloop를 말했다. 그들은 여전히 ​​그렇습니다. 반대의 예를 보여주세요. 답변은 오류를 훨씬 더 빨리 누적한다는 점 sleep 0.1sleep 1제외하고 는 답변 과 동일 합니다.
josch

나는 적어도 당신이 해결 한 문제의 존재를 인정하는 누군가를 찾고있는 대답을 내 렸습니다.
mariotomo

2

짧은 답변:

for i in `seq 60 -1 1` ; do echo -ne "\r$i " ; sleep 1 ; done

설명:

나는 많은 답변이 있다는 것을 알고 있지만 OP의 질문에 매우 가까운 것을 게시하고 싶습니다. 개인적으로 실제로 " 터미널의 oneliner countdown "으로 받아들 입니다. 내 목표는 다음과 같습니다.

  1. 짧막 한 농담.
  2. 카운트 다운.
  3. 기억하기 쉽고 콘솔에 입력하십시오 (함수 및 논리가 없음, bash 만 해당).
  4. 추가 소프트웨어를 설치할 필요가 없습니다 (루트가없는 경우에도 ssh를 통해 이동하는 모든 서버에서 사용할 수 있음).

작동 방식 :

  1. seq 60에서 1까지의 숫자를 인쇄합니다.
  2. echo -ne "\r$i "캐럿을 문자열의 시작 부분으로 되돌리고 현재 $i값을 인쇄 합니다. 현재 $i(10-> 9) 보다 문자 수만큼 길면 이전 값을 덮어 써야합니다 .

1
이것은 bash 스크립트에서 사용하기 위해 Mac OS에서 유스 케이스에 가장 적합했습니다. 작동 방식에 대한 설명이 추가로 도움이됩니다.
제임스 캠벨

1

나중에 참조 할 수 있도록 카운트 다운 / 카운트 업 타이머를위한 매우 간단한 명령 줄 옵션이있는 µTimer 라는 명령 줄 도구가 있습니다.


1

OSX에서 커맨드 라인 스톱워치를 찾는 사람이라고 가정하십시오. GNU 도구를 설치하지 않고 유닉스와 함께 실행하고 싶은 척하십시오.date

이 경우 @terdon이 말하지만이 수정으로 수행하십시오.

function stopwatch(){
    date1=`date +%s`; 
    while true; do 
        echo -ne "$(date -jf "%s" $((`date +%s` - $date1)) +%H:%M:%S)\r"; 
        sleep 0.1
    done
}

1
OS X El Capitan에서 시도했는데 어떤 이유로 16:00:00으로 시작합니다.
nopole

1

시계 + 날짜를 UTC 시간으로 사용하십시오. 큰 디스플레이를 위해 패키지를 설치할 수도 있습니다 ...

export now="`date +%s -u`";
watch -n 0,1 'date +%T -u -d @$((`date +%s` - $now ))'

#Big plain characters
watch -n 0,1 'date +%T -u -d @$((`date +%s` - $now )) | toilet -f mono12'

#Big empty charaters
watch -n 0,1 'date +%T -u -d @$((`date +%s` - $now )) | figlet -c -f big'

시도 해봐!

http://www.cyberciti.biz/faq/create-large-colorful-text-banner-on-screen/참조하십시오


1

sw 는 영원히 실행되는 간단한 스톱워치입니다.

sw

설치

wget -q -O - http://git.io/sinister | sh -s -- -u https://raw.githubusercontent.com/coryfklein/sw/master/sw

용법

sw
 - start a stopwatch from 0, save start time in ~/.sw
sw [-r|--resume]
 - start a stopwatch from the last saved start time (or current time if no last saved start time exists)
 - "-r" stands for --resume

1

파이썬 예제 :

#!/usr/bin/python

def stopwatch ( atom = .01 ):
    import time, sys, math

    start = time.time()
    last = start
    sleep = atom/2
    fmt = "\r%%.%sfs" % (int(abs(round(math.log(atom,10))))  if atom<1 else "")
    while True:
        curr = time.time()
        subatom = (curr-last)
        if subatom>atom:
            # sys.stdout.write( "\r%.2fs" % (curr-start))
            sys.stdout.write( fmt % (curr-start))
            sys.stdout.flush()
            last = curr
        else:
            time.sleep(atom-subatom)

stopwatch()

데모


1

TermTime을 살펴보십시오. 터미널 기반의 멋진 시계 및 스톱워치입니다.

pip install termtime


0

이것은 허용되는 답변과 비슷하지만 terdon의 countdown()구문 오류가 발생했습니다. 그러나 이것은 나를 위해 훌륭하게 작동합니다.

function timer() { case "$1" in -s) shift;; *) set $(($1 * 60));; esac; local S=" "; for i in $(seq "$1" -1 1); do echo -ne "$S\r $i\r"; sleep 1; done; echo -e "$S\rTime's up!"; }

그것을 넣고 .bashrc다음과 같이 실행할 수 있습니다 timer t(여기서 t는 시간입니다).


0

워크샵의 대형 카운트 다운 타이머를 표시하는 용어 애플리케이션을 찾을 때 오늘이 질문을 발견했습니다. 제안 사항 중 정확히 필요한 것은 없었으므로 Go에서 다른 제안을 신속하게 정리했습니다. https://github.com/bnaucler/cdown

문제가 이미 충분히 대답되었으므로 후손을위한 것으로 생각하십시오.



0

스톱워치의 GUI 버전

date1=`date +%s`
date1_f=`date +%H:%M:%S____%d/%m`
(
  while true; do 
    date2=$(date -u --date @$((`date +%s` - $date1)) +%H:%M:%S)
    echo "# started at $date1_f \n$date2"
  done
) |
zenity --progress \
  --title="Stop Watch" \
  --text="Stop Watch..." \
  --percentage=0

-2

어떤 이유로 든 컴파일 가능한 프로그램을 원하면 다음과 같이 작동합니다.

#include <iostream>
#include <string>
#include <chrono>

int timer(seconds count) {
  auto t1 = high_resolution_clock::now();
  auto t2 = t1+count;
  while ( t2 > high_resolution_clock::now()) {
    std::cout << "Seconds Left:" <<
    std::endl <<
      duration_cast<duration<double>>(count-(high_resolution_clock::now()-t1)).count() << 
    std::endl << "\033[2A\033[K";
    std::this_thread::sleep_for(milliseconds(100));
  }
  std::cout << "Finished" << std::endl;
  return 0;
}

bash 환경을 사용할 수 없거나 컴파일 된 프로그램을 선호하는 경우 다른 프로그램에서도 쉽게 이식 할 수 있습니다

깃 허브

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.