Computer >> 컴퓨터 >  >> 프로그래밍 >> Bash 프로그래밍

Bash 스크립트에서 sleep 명령어 사용하는 방법 (예제 포함)

이 글에서는 Bash/Shell 스크립트에서 sleep 명령어가 무엇인지, 그리고 어떤 상황에서 왜 사용하는지 예제와 함께 자세히 설명합니다.

sleep 명령어는 Bash를 비롯한 다양한 Linux 셸에서 스크립트 실행을 지정한 시간만큼 일시 중지하는 역할을 합니다. 초, 분, 시간 등 원하는 단위로 스크립트의 진행을 잠시 멈출 수 있습니다.

스크립트 실행을 왜 멈춰야 할까?

스크립트 실행 도중에 의도적으로 지연 시간을 두는 이유는 여러 가지가 있습니다.

  • 사용자에게 자동화된 작업을 중단할 기회를 주고 싶을 때
  • 사용자의 입력을 기다려야 할 때
  • 특정 장치가 준비되거나 워밍업될 때까지 대기해야 할 때
  • 스크립트 출력 내용을 읽을 수 있도록 화면에 텍스트가 빠르게 지나가는 것을 방지하고 싶을 때

sleep 명령어 문법

sleep 명령어의 기본 문법은 다음과 같습니다.

sleep NUMBER[UNITS]

각 요소의 의미는 아래와 같습니다.

  • NUMBER: 스크립트를 멈출 시간 값입니다. 기본 단위는 초(seconds)입니다.
    • 정수뿐만 아니라 소수점 숫자도 사용할 수 있습니다.
  • UNITS: 대기할 시간의 단위를 지정합니다.
    • 기본값은 초(s)이며, 생략 가능합니다.
    • s(초), m(분), h(시간), d(일) 중 하나를 선택할 수 있습니다.

sleep 명령어 활용 Bash 스크립트 예제

아래 예제는 sleep 명령어를 다양한 방식으로 사용한 스크립트입니다.

#!/bin/bash

echo "Hello there!"
sleep 6
echo "It's been 6 seconds since I said 'Hello there!'"
sleep 7m 
echo "It's been 7 minutes and 6 seconds since I said 'Hello there!'"
sleep .5
echo "It's been 7 minutes and 6.5 seconds since I said 'Hello there!'"

이 스크립트는 다음과 같이 동작합니다.

  • sleep 6: 6초간 대기합니다.
  • sleep 7m: 7분간 대기합니다.
  • sleep .5: 0.5초간 대기합니다. 이처럼 소수점 값을 사용해 짧은 지연도 구현할 수 있습니다.

참고: 셸 스크립트 첫 줄의 '#!'(shebang)란?

예제 스크립트 첫 줄에 있는 #!/bin/bash는 '셔뱅(shebang)'이라고 부르는 특수 문자열입니다. 이 줄은 시스템에게 해당 스크립트를 어떤 인터프리터로 실행해야 하는지 알려주는 역할을 합니다. 위 예제에서는 Bash 셸로 스크립트를 실행하도록 지정한 것입니다.