간단하게 터미널에서 작업 소요 시간을 체크 할 수 있는 방법들을 찾아봤는데
terdon 이라는 분이 알려준 방법은 잘 동작하였지만 https://superuser.com/questions/611538/is-there-a-way-to-display-a-countdown-or-stopwatch-timer-in-a-terminal?answertab=active#tab-top
~/.bashrc 파일에 함수를 추가하고 터미널에서 바로 호출해서 쓰는 방법이라 프로그램 추가 설치가 필요없다는 장점이 있다.
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
}
function stopwatch(){
date1=`date +%s`;
while true; do
echo -ne "$(date -u --date @$((`date +%s` - $date1)) +%H:%M:%S)\r";
sleep 0.1
done
}
현재 터미널에서 바로 사용하려면 source 명렁어로 .bashrc를 다시 읽어와야 한다
source ~/.bashrc
터미널에서 stopwatch라고만 입력하면 stopwatch 가 동작한다
$ stopwatch
00:00:01
countdown 을 실행하려면 몇 초 후 정지할지 인수를 넘겨줘야 한다
$ countdown 60*10
0 days(s) and 00:10:00
하지만 이 방법은 한가지 단점이 있는데 백그라운드에서 동작시킬 수 없다는 점이다. 그래서 위의 2개 함수를 shell 로 만들어 해결했지만 다른 문제가 발생했는데 백그라운드 작업을 정지시킬 수가 없다는 점이다.
bluedskim@penguin:~$ ps -ef|grep sleep
bluedsk+ 28554 25506 0 11:26 pts/2 00:00:00 sleep 0.1
bluedsk+ 28559 12585 0 11:26 pts/2 00:00:00 sleep 0.1
bluedsk+ 28561 887 0 11:26 pts/0 00:00:00 grep sleep
bluedskim@penguin:~$ kill -9 28554
bash: kill: (28554) - No such process
이것은 당연해 보인다. loop를 돌면서 계속해서 새로 프로세스가 생성되기 때문이다.
그래서 sw라는 스크립트를 시도해봤는데
https://github.com/coryfklein/sw
무한루프에 빠진다 -.-
date: invalid option -- 'v'
Try 'date --help' for more information.
마지막에 시도했던 termdown을 쓰려고 한다. 하지만 termdown 은 python기반이기 때문에 컴퓨터에 python이 설치되어 있어야 하고 설치를 위해서는 pip도 있어야 한다는 제약사항이 있다
pip는 pip3를 설치
$ sudo apt update
$ sudo apt install python3-pip
termdown 설치
$ pip3 install termdown
그런데 설치하고 바로 실행이 되지 않는다. 왜?
$ termdown
bash: termdown: command not found
pip3로 설치한 라이브러리를 찾지 못한다고 -.- 그래서 라이브러리를 찾을 수 있도록 ~/.bashrc에 아래를 추가한다
export PY_USER_BIN=$(python3 -c 'import site; print(site.USER_BASE + "/bin")')
export PATH=$PY_USER_BIN:$PATH
.bashrc를 수정했으니 source 명렁어로 .bashrc를 다시 읽어와야 한다
source ~/.bashrc
옵션 없이 termdown을 실행하면 stopwatch로 동작한다
[![termdown 스크린샷](/images/Screenshot 2019-03-24 at 11.55.46 AM.png)](/images/Screenshot 2019-03-24 at 11.55.46 AM.png)