BASH "for"루프를 작성하는 방법

쉘 스크립트에서 BASH "for"루프를 사용하는 방법

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

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

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

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

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

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

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

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

시작하기 전에

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

  1. mkdir 스크립트를 입력하십시오 ( 여기 mkdir에 대해 자세히 알아보십시오 ).
  2. cd scripts를 입력하십시오 ( 디렉토리스크립트로 변경됨 ).
  3. nano examplen.sh를 입력하십시오 (여기서 n 은 작업중인 예제 임).
  4. 스크립트 입력
  5. Ctrl + O 를 눌러 저장하고 CTRL + X 를 눌러 종료하십시오.
  6. bash examplen.sh를 실행하십시오 (다시, n 은 작업중인 예제입니다)

목록을 반복하는 방법

#! / bin / bash
숫자는 1 2 3 4 5
해야 할 것
echo $ number
끝난
출구 0

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

BASH "for"루프 모두에서 dodone 사이의 명령문은 목록의 모든 항목에 대해 한 번 수행됩니다.

위의 예에서 목록은 단어 뒤에 온 것 입니다 (즉 1 2 3 4 5).

루프가 반복 할 때마다 목록의 다음 값이 단어 "for" 다음에 지정된 변수에 삽입됩니다. 위의 루프에서 변수는 number 라고합니다.

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

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

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

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

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

#! / bin / bash
{1..10}의 숫자
해야 할 것
echo "$ number"
끝난
출구 0

규칙은 기본적으로 동일합니다. " in" 이라는 단어 뒤에 오는 값은 반복 할 목록을 구성하고 목록의 각 값은 변수 (즉, 숫자)에 배치되고 루프가 반복 될 때마다 dodone 사이의 명령문이 수행됩니다.

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

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

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

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

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

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

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

#! / bin / bash
숫자는 {0..100..10}
해야 할 것
echo "$ number"
끝난
출구 0

규칙은 기본적으로 동일합니다. dodone 사이에 수행 할 목록, 변수 및 명령문 집합이 있습니다. 이번에는 {0..100..10}과 같습니다.

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

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

더 전통적인 루프 찾기

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

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

#! / bin / bash
for ((number = 1; number <100; number ++))
{
if (($ number % 5 == 0))
그때
echo "$ number는 5로 나눌 수 있습니다."
fi
}
출구 0

루프는 변수 번호를 1 (숫자 = 1 )로 설정하여 시작합니다. 루프의 값은 100보다 작 으면 반복됩니다 ( 숫자 <100 ). number 의 값은 각 반복 후에 숫자 에 1을 더함으로써 바뀝니다 ( ++ 숫자 ).

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

중괄호 사이의 비트는 숫자 의 값을 확인하고 5로 나누고 나머지를 0과 비교합니다. 나머지가 0이면 숫자를 5로 나누어 화면에 표시합니다.

예 :

반복의 단계 크기를 변경하려면 ++ 섹션을 number = number + 2 , number = number + 5 또는 number = number + 10 등으로 수정할 수 있습니다.

이것은 number + = 2 또는 number + = 5 로 더 줄일 수 있습니다.

실용적인 예

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

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

#! / bin / bash

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

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