Bash Shell - sleep 함수, 특정 시간 멈추기

Linux의 Bash 쉘 스크립트에서 sleep으로 일정 시간 쉬는 방법을 소개합니다.

1. Syntax

sleep 명령어는 인자로 입력된 시간만큼 sleep합니다.

sleep 'time'

시간은 다음과 같이 숫자 + s/m/h로 정의할 수 있습니다. 기본적으로 단위가 second이기 때문에 1을 입력하면 1s로 처리됩니다.

  • 1s : 1초를 의미
  • 1m : 1분을 의미
  • 1h : 1시간을 의미
  • 10m 10s : 10분 10초를 의미
  • 1h 10m 10s : 1시간 10분 10초를 의미

2. sleep 예제

아래 예제는 3초 sleep하는 예제입니다. 시간을 함께 출력하여 sleep이 잘 동작했는지 확인할 수 있습니다.

#!/bin/bash

time=`date +"%H:%M:%S"`
echo "Start at $time"

echo "wait for 3 seconds"

sleep 3s

time=`date +"%H:%M:%S"`
echo "Finish at $time"

Output:

$ bash example.sh
Start at 11:08:00
wait for 3 seconds
Finish at 11:08:03

date의 자세한 사용 방법은 Bash Shell - 날짜, 시간 가져오기를 참고해주세요.

3. sleep 예제

다음과 같이 1m 10s처럼 다른 단위의 시간 조합으로 sleep할 수도 있습니다.

#!/bin/bash

time=`date +"%H:%M:%S.%3N"`
echo "Start at $time"

echo "wait for 1m 10s seconds"

sleep 1m 10s

time=`date +"%H:%M:%S.%3N"`
echo "Finish at $time"

4. sleep 예제

아래 예제는 0.1초 sleep하는 예제입니다. 기본적으로 시간 단위가 second이기 때문에, 1초 미만의 시간을 쉴 때는 0.1s처럼 소수로 시간을 표현하시면 됩니다.

#!/bin/bash

time=`date +"%H:%M:%S.%3N"`
echo "Start at $time"

echo "wait for 0.1 seconds"

sleep 0.1s

time=`date +"%H:%M:%S.%3N"`
echo "Finish at $time"

Output:

$ bash example.sh
Start at 11:21:25.326
wait for 0.1 seconds
Finish at 11:21:25.430

5. sleep 예제

다음은 반복문에서 sleep을 사용한 예제입니다. 동일한 시간 간격으로 반복문에서 어떤 작업을 처리할 수 있습니다.

#!/bin/bash

a=0
while [ "$a" -lt 5 ]
do
  echo "Do something at $(date +"%H:%M:%S")"
  sleep 3

  a=$(expr $a + 1)
done

Output:

$ bash example.sh
Do something at 11:13:12
Do something at 11:13:15
Do something at 11:13:18
Do something at 11:13:21
Do something at 11:13:24

6. References

Loading script...

Related Posts

codechachaCopyright ©2019 codechacha