Computer >> 컴퓨터 >  >> 프로그래밍 >> Bash 프로그래밍

Bash 셸 스크립트에서 break와 continue 문으로 반복문 제어하기

이 글에서는 Bash 스크립트에서 breakcontinue 문을 사용하는 방법을 살펴보겠습니다. Bash에는 for, while, until 세 가지 주요 반복문 구조가 있으며, break와 continue는 Bash 내장 명령으로 반복문의 흐름을 변경하는 데 사용됩니다. 이 개념은 Python을 비롯한 널리 쓰이는 프로그래밍 언어에서도 동일하게 제공됩니다.

$ type -a break continue

break 문으로 반복문 종료하기

break 문은 현재 실행 중인 반복문을 즉시 빠져나가고, 제어를 반복문 바깥의 다음 문장으로 넘깁니다. break 문에 대한 자세한 정보는 help 명령으로 확인할 수 있습니다.

$ help break

break의 기본 문법은 다음과 같습니다.

$ break [n]

n은 선택 사항

아래 예제를 살펴보겠습니다. 1부터 20까지 2씩 증가하는 값을 순회하는 간단한 for 반복문입니다. 조건문이 표현식을 평가했을 때 참($val = 9)이 되면 break 문이 실행되어 남은 반복을 건너뛴 채 반복문이 종료됩니다.

#!/usr/bin/bash

for val in {1..20..2}
do
  if [[ $val -eq 9 ]]
  then
     break
  else
     echo "printing ${val}"
  fi
done

continue 문으로 특정 반복 건너뛰기

반복문을 완전히 종료하지 않고, 특정 조건이 충족되었을 때 해당 코드 블록만 건너뛰고 싶다면 어떻게 해야 할까요? 이럴 때 continue 문을 사용합니다. continue 문은 조건이 만족되면 코드 블록의 실행을 건너뛰고, 제어를 반복문으로 돌려보내 다음 반복을 진행합니다.

도움말을 확인하려면 다음 명령을 실행합니다.

$ help continue

아래 예제는 앞서 break 문을 설명할 때 사용한 것과 동일한 예제입니다. 이번에는 val이 9로 평가되면 continue 문이 나머지 코드 블록을 모두 건너뛰고 제어를 for 반복문에 넘겨 다음 반복을 시작합니다.

#!/usr/bin/bash

for val in {1..20..2}
do
  if [[ $val -eq 9 ]]
  then
      continue
  fi
  echo "printing ${val}"
done

Python의 pass 문과 Bash에서의 대체 방법

Python에 익숙하다면 break와 continue의 동작이 Python에서도 동일하다는 점을 알고 있을 것입니다. 다만 Python에는 pass라는 추가적인 반복문 제어 문이 하나 더 있습니다.

pass는 일종의 null(널) 문으로, 인터프리터가 이를 읽기는 하지만 아무 작업도 수행하지 않습니다. 단순히 아무 일도 일어나지 않는 것이죠. Bash에는 이와 유사한 전용 문이 없지만, true 키워드나 콜론(:)을 사용해 같은 동작을 구현할 수 있습니다. true와 콜론은 모두 셸 내장 명령이며 어떤 작업도 수행하지 않습니다.

$ type -a : true

아래 예제를 살펴보겠습니다. 조건문이 참($val = 9)으로 평가되면 true 문은 아무것도 하지 않으며, 반복문은 그대로 계속 진행됩니다.

#!/usr/bin/bash

for val in {1..20..2}
do
  if [[ $val -eq 9 ]]
  then
      true
  fi
  echo "printing ${val}"
done

여기까지가 이번 글의 내용입니다. 소중한 피드백이나 유용한 팁이 있다면 언제든지 의견을 나눠 주시기 바랍니다.