기계적 인조 인간

배쉬 for 루프

í•생제를 사용해도 되나

í•생제를 사용해도 되나

차례:

Anonim

루프는 프로그래밍 언어의 기본 개념 중 하나입니다. 루프는 특정 조건에 도달 할 때까지 일련의 명령을 반복해서 실행하려고 할 때 편리합니다.

Bash와 같은 스크립팅 언어에서 루프는 반복적 인 작업을 자동화하는 데 유용합니다.

Bash 스크립팅에는 for 루프, while 루프 및 until 루프의 세 가지 기본 루프 구성이 있습니다.

이 튜토리얼에서는 Bash에서 for 루프의 기본 사항을 다룰 것입니다. 또한 break 및 continue 문을 사용하여 루프의 흐름을 변경하는 방법을 보여줍니다.

표준 배쉬 포 루프

for 루프는 항목 목록을 반복하고 지정된 명령 세트를 수행합니다.

Bash for 루프는 다음 형식을 따릅니다.

for item in do done

목록은 공백, 숫자 범위, 명령 출력, 배열 등으로 구분 된 일련의 문자열 일 수 있습니다.

문자열을 반복

아래 예제에서 루프는 문자열 목록의 각 항목을 반복하며 변수 element 는 현재 항목으로 설정됩니다.

for element in Hydrogen Helium Lithium Beryllium do echo "Element: $element" done

루프는 다음과 같은 출력을 생성합니다.

Element: Hydrogen Element: Helium Element: Lithium Element: Beryllium

숫자 범위에서 루프

시퀀스 표현식을 사용하여 범위의 시작 및 종료 지점을 정의하여 숫자 또는 문자 범위를 지정할 수 있습니다. 시퀀스 표현식은 다음 형식을 따릅니다.

{START..END}

아래 예제에서 루프는 0에서 3까지의 모든 숫자를 반복합니다.

for i in {0..3} do echo "Number: $i" done

Number: 0 Number: 1 Number: 2 Number: 3

Bash 4부터 범위를 사용할 때 증분을 지정할 수도 있습니다. 이 표현은 다음과 같은 형식을 취합니다.

{START..END..INCREMENT}

for i in {0..20..5} do echo "Number: $i" done

Number: 0 Number: 5 Number: 10 Number: 15 Number: 20

배열 요소 루프

for 루프를 사용하여 요소 배열을 반복 할 수도 있습니다.

아래 예에서는 배열 BOOKS 정의하고 배열의 각 요소를 반복합니다.

BOOKS=('In Search of Lost Time' 'Don Quixote' 'Ulysses' 'The Great Gatsby') for book in "${BOOKS}"; do echo "Book: $book" done

Book: In Search of Lost Time Book: Don Quixote Book: Ulysses Book: The Great Gatsby

C 스타일 배쉬 for 루프

C 스타일 for 루프의 구문은 다음과 같은 형식을 취합니다.

for ((INITIALIZATION; TEST; STEP)) do done

INITIALIZATION 파트는 루프가 시작될 때 한 번만 실행됩니다. 그런 다음 TEST 부분이 평가됩니다. 거짓이면 for 루프가 종료됩니다. TEST 가 참이면 for 루프 본문 내의 명령이 실행되고 STEP 부분이 업데이트됩니다.

다음 코드에서 루프는 i = 0 을 초기화하여 별표를 표시 한 다음 각 반복 전에 i ≤ 10 인지 확인합니다. true이면 i i 의 현재 값을 1 ( i++ ) 씩 인쇄합니다. 그렇지 않으면 루프가 종료됩니다.

for ((i = 0; i <= 1000; i++)); do echo "Counter: $i" done

루프는 1001 번 반복되고 다음과 같은 출력을 생성합니다.

Counter: 0 Counter: 1 Counter: 2… Counter: 998 Counter: 999 Counter: 1000

Break and Continue 문

break 및 continue 문을 사용하여 for 루프 실행을 제어 할 수 있습니다.

브레이크 선언

break 문은 현재 루프를 종료하고 프로그램 제어를 종료 된 문 다음에 오는 문으로 전달합니다. 일반적으로 특정 조건이 충족 될 때 루프를 종료하는 데 사용됩니다.

다음 예제에서는 if 반복문을 사용하여 현재 반복 된 항목이 'Lithium'과 같으면 루프 실행을 종료합니다.

for element in Hydrogen Helium Lithium Beryllium; do if]; then break fi echo "Element: $element" done echo 'All Done!'

Element: Hydrogen Element: Helium All Done!

계속 진술

continue 문은 루프의 현재 반복을 종료하고 프로그램 제어를 루프의 다음 반복으로 전달합니다.

다음 예제에서 우리는 숫자 범위를 반복하고 현재 반복 항목이 '2'와 같으면 continue 문으로 인해 루프의 시작으로 돌아가서 다음 반복이 계속됩니다.

for i in {1..5}; do if]; then continue fi echo "Number: $i" done

Number: 1 Number: 3 Number: 4 Number: 5

배쉬 포 루프 예제

파일 이름에 공백이있는 파일 이름 바꾸기

다음 예제는 Bash for 루프를 사용하여 공백을 밑줄로 바꾸어 현재 디렉토리의 모든 파일 이름을 공백으로 바꾸는 방법을 보여줍니다.

for file in *\ *; do mv "$file" "${file// /_}" done

코드를 한 줄씩 나누어 봅시다:

  • 첫 번째 줄은 for 루프를 만들고 이름에 공백이있는 모든 파일 목록을 반복합니다. *\ * 식은 목록을 만듭니다. 두 번째 줄은 목록의 각 항목에 적용되며 공백을 밑줄 ( _ )로 바꾸어 파일을 새 항목으로 이동합니다. ${file// /_} 은 쉘 매개 변수 확장을 사용하여 매개 변수 내의 패턴을 문자열로 대체합니다. done 는 루프 세그먼트의 끝을 나타냅니다.

파일 확장자 변경

다음 예제는 Bash for 루프를 사용하여 파일 확장자를.jpeg에서.jpg로 바꾸어 현재 디렉토리에서.jpeg로 끝나는 모든 파일의 이름을 바꾸는 방법을 보여줍니다.

for file in *.jpeg; do mv -- "$file" "${file%.jpeg}.jpg" done

코드를 한 줄씩 분석해 봅시다:

  • 첫 번째 줄은 for 루프를 만들고 '.jpeg'로 끝나는 모든 파일 목록을 반복합니다. 두 번째 줄은 목록의 각 항목에 적용되고 '.jpeg'를 '.jpg'로 바꾸는 새 파일로 파일을 이동합니다.. 쉘 매개 변수 확장을 사용하여 파일 이름에서 '.jpeg'부분을 제거하는 ${file%.jpeg} 는 루프 세그먼트의 끝을 나타냅니다.

결론

이제 bash for 루프를 사용하여 목록을 반복하는 방법에 대해 잘 알고 있어야합니다.

bash 루프 터미널