Articles

Bash 잠 명령:빠른 가이드에 그것을 사용하는 스크립트

우리는 일반적으로 원하는 스크립트를 실행을 빨리,하지만 항상 그렇지 않은 경우입니다. 때로는 Bash 스크립트가 다음 명령을 실행하기 전에 sleep 명령을 사용하는 것이 합리적입니다. 언제 알아 봅시다…

Bash sleep 명령은 무엇입니까?

Bash sleep 명령은 주어진 시간 동안 그 후에 명령의 실행을 지연시킵니다. 수면 시간은 초 단위로 표시됩니다. Sleep 명령의 사용은 x 초마다 작업을 예약 할 때 또는 스크립트가 다른 스크립트에 의존하여 실행을 완료 할 때 일반적입니다.,

살펴보자는 세 가지 시나리오를 사용할 수 있는 수면 명령:

  1. 대신 실행하는 명령은 바로,당신은 당신을 예약하려의 실행 X 초에는 미래입니다.
  2. 프로그램은 일련의 파일을 처리하는 데 오랜 시간이 걸리고 처리가 완료되면 파일을 생성하여이를 나타냅니다. 스크립트를 작성할 수 있습을 확인하는 경우는 파일이 존재하고 잔의 특정 기간 동안 시간 경우 그렇지 않습니다. 그렇지 않으면 실행하는 프로세스의 다음 단계에 따라 파일에 의해 생성 된 첫 번째 프로그램입니다.,
  3. 프로그래밍 방식으로 타사 API 를 호출하고 있으며 API 가 분당 60 개 이상의 요청을 허용하지 않는다는 것을 알고 있습니다. X 초 동안 잠을 자면 API 공급자가 허용하는 분당 요청 수를 넘지 않도록 할 수 있습니다.

시작합시다!,

Bash Sleep 명령의 기본 구문

Bash 에서 sleep 명령의 기본 구문은 매우 간단합니다.

sleep <SECONDS>

다음은 명령 행에서 실행하면 어떻게됩니까?

$ sleep 5$ 

이 경우 sleep5 명령을 실행 한 후 Linux 는 5 초 후에 쉘을 반환합니다.

이제 how to you The Bash sleep 명령의 세 가지 실용적인 예제로 넘어 갑시다.,

시나리오 1:잠을 명령하는 지연의 실행 또 다른 명령에 Bash 스크립트

쓸 것입니다 간단하 Bash 쉘 스크립트를 표시하는 정확한 행동의 잠 명령을 수 있습니다…

…을 고려하는 이전 예 수 없이 정말로 표시하는 잠 명령을 반환되는 셸 후 5 초입니다.

시나리오 1 에서 설명한 작업을 수행하는 스크립트를 작성하면 명령 실행을 X 초(이 경우 5 초)지연시킵니다.

작업 스케줄러의 동일한 원칙에 따라 특정 시간에 명령을 실행하는 것과 거의 같습니다.,

따라서delay_cmd.sh라는 매우 간단한 Bash 쉘 스크립트를 작성하십시오.

#!/bin/bash datesleep 5dateuptime 

날짜 명령은 sleep 명령 전후에 현재 날짜를 인쇄하는 데 사용됩니다.이 방법으로 스크립트가 5 초 동안 일시 중지 된 것을 볼 수 있습니다.

5 초 후에 가동 시간 명령이 실행됩니다.

는 의미가 있습니까?

이론에서 작성할 수 있습니다 같은 스크립트에 한 줄

#!/bin/bash date; sleep 5; date; uptime 

이 때문에 세미콜론에서 사용되는 리눅스는 별도의 서로 다른 명령을 실행하고 순차적으로 동작한다.,즉,Linux 는 다음 명령을 실행하기 전에 각 명령이 완료되었는지 확인합니다.

시나리오 2:Bash 스크립트를 사용하는 잠 명령을 기다리는 또 다른 스크립트를 완료

이 예에서 나는 것을 만들 두 가지 스크립트:

  1. program_1.sh:잠 30 초고 그것 이라는 파일을 생성 스테이지 1.완료. 이것은 기본적으로 특정 작업을 완료하는 데 오랜 시간이 걸리는 프로그램을 시뮬레이션하고 stage1 을 작성하여 실행 완료를 확인합니다.완전한 파일.<리>program_2.sh:while 루프를 사용하고 매 반복마다 stage1 이 있는지 확인합니다.,완전한 파일이 존재합니다. 그렇지 않으면 6 초 동안 잠을 자고 파일이 있으면”File stage1″메시지를 인쇄합니다.완전한 존재합니다. 1 단계 완료,2 단계 시작…”.

는 다음과 같습니다 program_1.sh:

#!/bin/bash sleep 30touch stage1.complete 

touch 명령은 첫 번째 프로그램에서 stage1 을 만드는 데 사용됩니다.스크립트가 실행되는 순간부터 30 초 후에 파일을 완성하십시오.

및 program_2.sh 다음,우리는 그것을 구현하기 위해 Bash if else 문을 사용할 것입니다:

두 번째 Bash 쉘 스크립트에는 무한 루프가 있습니다., 모든 반복에서 스크립트:

  • 는 파일 stage1 을 확인합니다.완전한 존재입니다.
  • 파일이 존재하지 않으면 6 초 동안 잠자기
  • 파일이 존재하면 stage1 이 제거됩니다.파일을 완료하고 Bash 종료 명령을 사용하여 실행을 중지합니다.,

실행하기 전에 두 가지 스크립트는 반드시 그들 모두 executable using chmod+x 명령:

chmod +x program_*.sh

이자 스크립트를 실행합니다…

우리는 것이 실행program_1.sh첫째, 우리는 그것을 실행하도록 백그라운드에서 실행할 수 있습니다program_2.sh즉시 그 후에서 동일한 터미널:

예상대로 두 번째 스크립트는 유지 침 6 초 동안을 찾을 때까지 파일이 스테이지 1.파일을 완료 한 다음 실행을 중지합니다.,

시나리오 3:잠을 명령하는 제어의 세 번째 파티 API

경우 전화를 걸려는 API 를 사용하여 강타할 수 있는 스크립트를 사용하여 컬 명령입니다.

를 사용하여 컬 API 를 호출하는 간단하자,예를 들어 다음과 같은 API 를 끝점:

https://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22 

우리는 우리를 작성합니다 Bash 스크립트를 사용하는 컬 수행하는 GET 요청에 대하여 그것을 사용하여 잠 명령의 수를 제한 API 를 호출에는 일정기간 보존합니다.이것은 API 공급자가 부과 한 잠재적 한계를 넘지 않도록하기 위해 수행됩니다.,

이것은 스크립트를 작성했다.

에 대한 몇 가지 이 스크립트:

  • 카운터 변수를 사용하여 수의 API 를 호출하기 전에 실행할 종료 시에는 반복입니다.
  • cURL 은 API 끝점에 대해 GET 요청을 수행하는 데 사용됩니다.
  • while 루프의 모든 반복에서 sleep 명령으로 10 초 동안 스크립트를 일시 중단하여 API 호출 수를 10 초마다 하나씩 제한합니다.
  • 우리는 산술 연산자$(())를 사용하여 카운터 변수를 증가시킵니다.,

이 스크립트를 실행합니다:

예상대로 두 API 실행한 후 실행하는 동안 반복지기 때문에 COUNTER 변수 값은 3 입니다.

결론

Bash 스크립트에서 sleep 명령을 사용하는 다른 방법을 보여주었습니다.

그리고 그 과정에서 나는 많은 다른 것들을 다루었습니다.

  • 백그라운드에서 스크립트를 실행합니다.
  • 산술 연산자를 사용합니다.
  • 무한 동안 루프.
  • 카운터 변수.
  • curl 을 사용하여 API 를 호출합니다.
  • 파일 생성 및 제거.,
  • Bash 스크립트에 대한 실행 권한 설정.
  • 세미콜론을 사용하여 명령을 순차적으로 실행합니다.

나는 그것이 모든 의미가 있기를 바랍니다!

그리고 당신은? Bash 에서 sleep 명령을 어떻게 사용합니까? 🙂

관련 무료 강좌:Decipher Bash Scripting