Linux 절전 명령으로 Bash 스크립트를 일시 중지하는 방법

sleep 명령은 Linux 컴퓨터가 아무것도 하지 않게 합니다. 반직관적일 수 있지만 비활성 기간이 필요한 경우가 있습니다. 이 기사에서는 이 Bash 셸 명령을 효과적으로 사용하는 방법을 보여줍니다.

수면을 사용하는 것은 쉽습니다. 명령줄에 sleep, 공백, 숫자를 입력한 다음 Enter 키를 누릅니다.

sleep 5

커서가 5초 동안 사라지고 다시 돌아옵니다. 무슨 일이에요? 명령줄에서 sleep을 사용하면 Bash가 제공한 기간 동안 처리를 일시 중단하도록 지시합니다. 이 예에서는 5초였습니다.

우리는 수면 시간을 일, 시간, 분 및 초 단위로 전달할 수 있습니다. 이렇게 하려면 기간과 함께 d, h, m 또는 s의 접미사를 포함합니다. 하루 4시간 7분 5초 동안 절전 모드를 일시 중지하려면 다음과 같은 명령을 사용합니다.

sleep 1d 4h 7m 5s

s 접미사(초)는 선택 사항입니다. 접미사가 없으면 sleep은 모든 지속 시간을 초로 처리합니다. 5분 20초 동안 수면을 멈추고 싶다고 가정해 봅시다. 이 명령의 올바른 형식은 다음과 같습니다.

sleep 5m 20

분 지속 시간에 m 접미사를 제공하는 것을 잊은 경우 5초 동안 일시 중지한 다음 다시 20초 동안 일시 중지하도록 sleep에 지시합니다. 따라서 수면은 25초 동안 일시 중지됩니다.

많은 명령에서 특정 순서로 매개변수를 제공해야 하지만 sleep은 매우 관대합니다. 당신은 그것들을 어떤 순서로든 제공할 수 있고 그것들이 이해가 될 것입니다. 부동 소수점 숫자를 매개변수로 제공할 수도 있습니다. 예를 들어, 0.5h는 수면이 30분 동안 일시 중지되기를 원한다는 것을 나타내는 유효한 방법입니다.

다음의 모든(점점 더 괴상한) 명령은 sleep에 10초 동안 일시 중지하도록 지시합니다.

sleep 10
sleep 5 5s
Sleep 1 1 1s 1 1 1s 1 2
sleep 0.16667m

슬립을 사용하여 명령 전에 일시 중지

sleep 명령을 사용하여 명령을 실행하기 전에 일시 중지할 수 있습니다. 이 명령은 15초 동안 멈춘 다음 신호음이 울립니다.

sleep 15 && echo -en ' 07'

절전 모드를 사용하여 두 명령 사이에 일시 중지

sleep을 사용하여 두 명령 사이에 일시 중지를 줄 수 있습니다. 이 명령은 Documents 디렉토리에 있는 파일을 나열하고 5초 동안 일시 중지한 다음 현재 작업 디렉토리를 홈 디렉토리로 변경합니다.

ls -R ~/Documents && sleep 5 && cd ~

절전을 사용하여 스크립트 실행 일시 중지

쉘 스크립트에서 sleep 명령을 사용하여 정확한 시간 동안 스크립트 실행을 일시 중지할 수 있습니다. 일반적으로 스크립트가 처리를 계속하기 전에 일부 프로세스를 완료하는 데 충분한 시간을 허용하기 위해 이 작업을 수행합니다. 또한 스크립트가 다른 리소스에 대해 요청하는 속도를 제한하는 데 사용할 수도 있습니다.

  Linux 터미널에서 Windows USB를 만드는 방법

정확히 설명하기 위해 다음은 curl을 사용하여 Google 웹 서비스를 호출하는 스크립트입니다. 다음을 사용하여 웹 서비스를 쿼리할 때 ISBN 책의 번호를 입력하면 해당 책과 관련된 JSON 데이터 덤프로 응답합니다. 책 제목을 검색하기 위해 jq 유틸리티를 통해 데이터를 전달하여 해당 데이터를 구문 분석할 수 있습니다. 스크립트가 웹 서비스에 스트레스를 주지 않도록 웹 요청 사이에 1초 동안 휴면합니다.

다음 텍스트가 포함된 파일을 만들고 check_book.sh로 저장합니다.

#!/bin/bash

for book in `cat $1`
do
 echo $book":"
 curl -s https://www.googleapis.com/books/v1/volumes?q=isbn:$book | jq '.items | .[] | .volumeInfo.title'
 echo ""
 sleep 1
done

echo "All done."

다음 명령을 입력하여 실행 권한을 설정하고 스크립트를 실행 가능하게 만드십시오.

chmod +x check_book.sh

스크립트에는 curl 및 jq 유틸리티가 필요합니다. Ubuntu 또는 다른 Debian 기반 배포를 사용하는 경우 apt-get을 사용하여 이러한 패키지를 시스템에 설치합니다. 다른 Linux 배포판에서는 Linux 배포판의 패키지 관리 도구를 대신 사용하십시오.

sudo apt-get install curl
sudo apt-get install jq

다음 숫자가 포함된 텍스트 파일을 만들고 books.txt로 저장합니다.

9781565921276
9781874416685
9781565921672
9780521431088
9781491941591

check_book.sh 스크립트를 실행하고 books.txt 파일을 매개변수로 전달합니다.

./check_book.sh books.txt

1초 간격으로 Google 웹 서비스에 요청합니다. 책 제목은 각 ISBN 번호를 쿼리한 직후에 나타납니다.

잠자는 것이 전부입니다. check_book.sh 스크립트의 내부 작동은 이 기사의 범위를 벗어납니다. 스크립트는 순전히 sleep 명령의 유효한 사용을 설명하기 위해 선택되었습니다. 스크립트의 두 가지 주요 구성 요소에 대한 자세한 내용은 curl을 참조하십시오. 프로젝트 페이지 그리고 jq 온라인 설명서.