반응형
Shell script를 작성하다보면, 10 ~ 60초 정도 대기하는 시간에 멀뚱히 터미널을 쳐다보는 것이 지루할 때가 있다.
지루하지 않더라도 터미널에 수십초 동안 아무것도 출력되지 않으면,
"어~ 스크립트가 중간에 hang up 상태로 빠졌나?"
이런 의심을 하게 된다.
이럴 때, 시간이 흘러가는 것처럼 숫자가 올라가거나 내려가거나(count-up, count-down) 하면 좋다.
긴 설명은 필요없고, 아래 script를 활용하면 대기하는 지루함을 줄일 수 있다.
##
## NOTE:
## macOS와 Ubuntu, CentOS의 date 명령에 대한 output format 옵션이 달라서 script가 조금 다르다.
##
##
## NOTE: Ubuntu, CentOS에서 동작하는 스크립트
##
#!/usr/bin/bash
function countdown(){
date_start=$((`date +%s` + $1));
while [ "$date_start" -ge `date +%s` ]; do
left_time="$(date -u --date @$(($date_start - `date +%s`)) +%M:%S)";
echo -ne "Countdown $left_time \r"
sleep 0.1
done
}
countdown 5
---
##
## NOTE: macOS에서 동작하는 스크립트
##
#!/opt/homebrew/bin/bash
function countdown(){
date_start=$((`date +%s` + $1));
while [ "$date_start" -ge `date +%s` ]; do
curr_time=$((`date +%s`))
left_time=$(($date_start - $curr_time))
echo -ne "Countdown $left_time \r"
sleep 0.1
done
}
countdown 3
'Shell Script' 카테고리의 다른 글
Bash Shell 기본 정리, 요약, 스크립트 예제 (Script example) (0) | 2023.02.15 |
---|---|
find xargs 명령 사용법 (편하게 사용하는 팁) (0) | 2022.07.05 |
sed 사용법 - 종합 (0) | 2022.06.16 |
문자열에서 따옴표 떼어내기(제거하기) (0) | 2022.01.22 |
문자열 분리, 특정 컬럼 출력하는 명령 (String split, delimit) - cut, awk, print 명령 (0) | 2021.11.11 |