셸 스크립트를 작성하다 보면 다음 단계로 넘어가기 전에 일정 시간 동안 기다려야 하는 경우가 종종 있습니다. 예를 들어 어떤 프로세스가 완료될 때까지 기다리거나, 실패한 명령을 재시도하기 전에 잠시 멈춰야 할 수 있죠.
이럴 때 사용할 수 있는 것이 바로 아주 간단한 sleep 명령어입니다.
Bash sleep 명령어 사용 방법
sleep은 문법이 매우 단순하면서도 활용도가 높은 명령어입니다. sleep N 형태로 입력하기만 하면 되는데, 이렇게 하면 스크립트가 N초 동안 일시 정지됩니다. 여기서 N은 양의 정수 또는 소수점 숫자 모두 가능합니다.
가장 기본적인 예제를 살펴보겠습니다.
echo "Hello there!"
sleep 2
echo "Oops! I fell asleep for a couple seconds!"이 스크립트를 실행하면 다음과 같은 결과가 나타납니다.

마찬가지로 소수점 숫자를 사용해 초 미만의 시간도 표현할 수 있습니다. 예를 들어 sleep .8을 실행하면 스크립트가 0.8초 동안 멈춥니다.
이것이 sleep 명령어의 기본적인 사용법입니다.
sleep 명령어 사용 시 알아두어야 할 사항
sleep의 기본 시간 단위는 초(seconds)이기 때문에 앞선 예제들에서는 단위를 따로 지정하지 않았습니다.
일부 시스템(BSD 계열 및 macOS)에서는 초 단위만 지원합니다. 반면 다른 유닉스 계열 운영체제에서는 대개 다음과 같은 시간 단위를 함께 사용할 수 있습니다.
s: 초(seconds)m: 분(minutes)h: 시간(hours)d: 일(days)
또한 sleep 명령어에 인자를 여러 개 전달하는 것도 가능합니다. 두 개 이상의 숫자를 지정하면 시스템은 해당 숫자들의 합만큼 대기합니다.
예를 들어 sleep 2m 30s는 2분 30초, 즉 2분 반 동안 일시 정지를 만듭니다. 참고로 macOS나 BSD 머신에서 동일한 결과를 얻으려면 2분 30초가 150초와 같으므로 sleep 150을 실행해야 합니다.
마무리
sleep 명령어는 Bash 스크립트에 일시 정지 구간을 추가할 수 있는 아주 유용한 도구입니다. 다른 명령어와 조합하면 타이머 알람 만들기, 작업 순서 제어, 웹사이트 연결 재시도 간격 조절 등 다양한 용도로 활용할 수 있습니다. 이처럼 간단하지만 강력한 도구를 여러분의 Bash 툴박스에 꼭 넣어두고 활용해 보세요!