Skip to main content

리눅스 쉘 스크립트 BASH for 'Loop의 예

BASH Scripting Lesson 5 using WHILE loops (4 월 2025)

BASH Scripting Lesson 5 using WHILE loops (4 월 2025)
Anonim

BASH (Bourne Again Shell의 약자)는 대부분의 Linux 및 UNIX 기반 운영 체제에서 사용되는 스크립팅 언어입니다.

터미널 창에서 BASH 명령을 차례대로 실행하거나 텍스트 파일에 명령을 추가하여 쉘 스크립트를 생성 할 수 있습니다.

셸 스크립트를 작성하는 것은 반복해서 실행할 수 있다는 점에서 가장 좋습니다. 예를 들어 사용자를 시스템에 추가하고 권한을 설정하고 시작 환경을 관리해야한다고 가정 해보십시오. 한 장의 종이에 명령을 적어두고 새로운 사용자를 추가 할 때 명령을 실행하거나 단일 스크립트를 작성하고 해당 스크립트에 매개 변수를 전달할 수 있습니다.

BASH와 같은 스크립팅 언어는 다른 언어와 비슷한 프로그래밍 구조를 가지고 있습니다. 예를 들어, 가져 오기 매개 변수를 사용하여 키보드에서 입력을 가져 와서 변수로 저장할 수 있습니다. 그런 다음 입력 매개 변수의 값을 기반으로 특정 조치를 수행하도록 스크립트를 가져올 수 있습니다.

프로그래밍 및 스크립팅 언어의 핵심 부분은 동일한 코드를 반복해서 실행할 수있는 능력입니다.

코드를 반복하는 방법에는 여러 가지가 있습니다 (루프라고도 함). 이 가이드에서는 "for"루프를 작성하는 방법을 보여줍니다.

에이 …에 대한 루프는 코드의 특정 부분을 반복해서 반복합니다. 일련의 명령이 특정 조건이 충족 될 때까지 계속 실행될 수 있으므로 유용합니다. 그 후에는 명령이 중지됩니다.

이 가이드에서는 BASH 스크립트에서 for 루프를 사용하는 다섯 가지 방법을 보여줍니다.

시작하기 전에

for 루프 예제를 시작하기 전에 터미널 창을 열고 다음 단계를 수행해야합니다.

  1. 들어가다 mkdir 스크립트 (여기 mkdir에 대해 자세히 알아보십시오.)

  2. 들어가다 CD 스크립트 (이것은 디렉토리를 스크립트 ).

  3. 들어가다 nano examplen.sh (어디에 엔 당신이 작업하고있는 예제입니다.)

  4. 스크립트를 입력하십시오.

  5. 프레스 CTRL + O 저장하고 CTRL + X 나가기 위해서.

  6. 운영 bash examplen.sh (다시, 엔 당신이 함께 일하는 예가되고 있습니다.)

목록을 반복하는 방법

#! / bin / bashfor 1 2 3 4 5doecho $ numberdoneexit 0

"for"루프를 사용하는 BASH 방식은 대부분의 다른 프로그래밍 및 스크립팅 언어가 "for"루프를 처리하는 방식과 다소 다릅니다. 스크립트를 중단합시다.

BASH "for"루프 모두에서, 해야 할 것 과 끝난 목록의 모든 항목에 대해 한 번 수행됩니다.

위의 예에서 목록은 단어 뒤에 오는 모든 것입니다. …에서 (즉, 1 2 3 4 5).

반복문이 반복 될 때마다 목록의 다음 값이 단어 뒤에 지정된 변수에 삽입됩니다 "에 대한" . 위의 루프에서 변수는 호출됩니다. 번호 .

echo 문은 정보를 화면에 표시하는 데 사용됩니다.

따라서이 예제에서는 숫자 1에서 5까지를 하나씩 화면에 출력합니다.

  • 1
  • 2
  • 3
  • 4
  • 5

시작 지점과 끝 지점 사이에서 반복하는 방법

위 예제의 문제는 더 큰 목록 (예 : 1에서 500)을 처리하려는 경우 처음부터 모든 숫자를 입력하는 데 시간이 오래 걸린다는 것입니다.

이것은 시작점과 끝점을 지정하는 방법을 보여주는 두 번째 예제를 보여줍니다.

#! / bin / bashfor {1..10} doecho의 숫자 "$ number"doneexit 0

규칙은 기본적으로 동일합니다. 단어 " 에서" 반복 할 목록을 구성하고 목록의 각 값이 변수 (즉, 숫자)에 배치되고 루프가 반복 될 때마다 해야 할 것 과 끝난 수행됩니다.

주요 차이점은 목록이 형성되는 방식입니다. 중괄호 {}는 기본적으로 범위를 나타내며이 경우 범위는 1에서 10 사이입니다 (두 개의 점으로 범위의 시작과 끝을 구분합니다).

따라서이 예제는 1과 10 사이의 각 숫자를 실행하고 다음과 같이 화면에 숫자를 출력합니다.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

첫 번째 예제와 동일한 구문을 사용하여 같은 루프를 다음과 같이 작성할 수 있습니다.

숫자로 1 2 3 4 5 6 7 8 9 10

범위에서 숫자를 건너 뛰는 방법

앞의 예제는 시작과 끝 지점을 반복하는 방법을 보여 주었으므로 범위의 숫자를 건너 뛰는 방법을 살펴 보겠습니다.

0 ~ 100 사이에서 반복하지만 매 10 번째 숫자 만 보여주기를 원한다고 상상해보십시오. 다음 스크립트는이를 수행하는 방법을 보여줍니다.

#! / bin / bashfor {0..100..10} doecho의 숫자 "$ number"doneexit 0

규칙은 기본적으로 동일합니다. 사이에 수행 할 목록, 변수 및 명령문 세트가 있습니다. 해야 할 것 과 끝난 . 이번에는 {0..100..10}과 같습니다.

첫 번째 숫자는 0이고 끝 번호는 100입니다. 세 번째 숫자 (10)는 건너 뛸 목록의 항목 수입니다.

따라서 위의 예에서는 다음 출력을 표시합니다.

  • 0
  • 10
  • 20
  • 30
  • 40
  • 50
  • 60
  • 70
  • 80
  • 90
  • 100

더 전통적인 루프 찾기

BASH의 for 루프 작성 방법은 다른 프로그래밍 언어와 비교할 때 약간 이상합니다.

그러나 다음과 같이 C 프로그래밍 언어와 비슷한 스타일로 for 루프를 작성할 수 있습니다.

"$ 숫자는 5로 나눌 수 있습니다"fi} exit 0 (if ($ number % 5 == 0)) if

루프는 변수 번호를 1로 설정하여 시작합니다. (숫자 = 1 ). 숫자의 값이 100보다 작 으면 루프가 계속 반복됩니다. ( 숫자 <100 ). 의 가치 번호 각 반복 후에 1을 더함으로써 변경됩니다 ( 넘버 ++ ).

중괄호 사이의 모든 것은 루프의 각 반복을 통해 수행됩니다.

중괄호 사이의 비트는 a의 값을 검사합니다. 번호 5로 나누고 나머지를 0과 비교합니다. 나머지가 0이면 숫자를 5로 나눌 수 있으며 화면에 표시됩니다.

예 :

  • 5는 5로 나눌 수 있습니다.
  • 10은 5로 나눌 수 있습니다.
  • 15는 5로 나눌 수 있습니다.

반복의 단계 크기를 변경하려면 숫자 ++ 부분을 수정할 수 있습니다. 숫자 = 숫자 + 2 , 숫자 = 숫자 + 5 , 또는 숫자 = 숫자 + 10 기타

이것은 더 감소 될 수있다. 숫자 + = 2 또는 숫자 + = 5 .

실용적인 예

For 루프는 반복되는 숫자 목록 이상을 수행 할 수 있습니다. 실제로 다른 명령의 출력을 목록으로 사용할 수 있습니다.

다음 예제는 오디오 파일을 MP3에서 WAV로 변환하는 방법을 보여줍니다.

#! / bin / bash./*.mp3dompg -w ./wavs/"${file}".wav "$ file"에있는 파일 용

이 예제의 목록은 현재 폴더에 확장명이 .MP3 인 모든 파일이며 변수는 파일 .

그만큼 mpg 명령은 MP3 파일을 WAV로 변환합니다. 그러나 먼저 패키지 관리자를 사용하여 설치해야합니다.