웹사이트 검색

쉘 스크립트에서 루프까지 사용하는 방법


Bash에서 for, whileuntil은 세 가지 루프 구성입니다. 각 루프는 구문적으로나 기능적으로 다르지만 그 목적은 특정 표현식이 평가될 때 코드 블록을 반복하는 것입니다.

Until 루프는 표현식이 false로 평가될 때까지 코드 블록을 실행하는 데 사용됩니다. 이는 while 루프와 정반대입니다. while 루프는 표현식이 true인 동안 코드 블록을 실행하고 until 루프는 그 반대를 수행합니다.

until [ expression ]
do
	code block
	...
	...
done

구문을 분석해 보겠습니다.

  • 루프를 시작하려면 단일 또는 이중 중괄호 안에 표현식이 뒤따르는 Until 키워드를 사용해야 합니다.
  • 코드 블록 실행을 시작할 때까지 표현식은 false로 평가되어야 합니다.
  • 실제 코드 블록은 do와 done 사이에 배치됩니다.

이 짧은 기사에서는 다음 예제를 사용하여 쉘 스크립트에서 루프까지 사용하는 방법을 배웁니다.

스크립트에서 무한 루프 만들기

false 문을 표현식으로 사용하여 무한 루프를 만들 수 있습니다. 무한 루프를 시뮬레이션하려고 할 때 스크립트를 주기적으로 전달하는 sleep을 사용해 보십시오.

count=0
until false
do
	echo "Counter = $count"
	((count++))
	sleep 2
done

한 줄 문 만들기

한 줄짜리 루프 문을 만들 수 있습니다. 아래 코드를 살펴보세요. 이는 첫 번째 무한 루프 예제와 동일하지만 한 줄에 있습니다. 여기에서는 각 문을 종료하려면 세미콜론 (;)을 사용해야 합니다.

until false; do echo "Counter = $count"; ((count++)); sleep 2; done

break 및 continue 문으로 흐름 변경

while 루프 내에서 break 및 continue 문을 사용할 수 있습니다. break 문은 루프를 종료하고 제어를 다음 문으로 전달하는 반면 continue 문은 현재 반복을 건너뛰고 루프에서 다음 반복을 시작합니다.

동일한 무한 루프 예제를 사용하고 있습니다. 여기서 개수가 5개와 같을 때 continue 문은 루프 본문의 나머지 부분을 건너뛰고 다음 반복으로 점프합니다. 마찬가지로 개수가 10 이상이면 루프가 중단됩니다.

count=0
until false
do
  ((count++))
  if [[ $count -eq 5 ]]
  then
    continue
  elif [[ $count -ge 10 ]]
  then
    break
  fi
  echo "Counter = $count"
done

이것이 바로 이 기사입니다. 곧 '~까지' 또 다른 흥미로운 기사로 여러분을 찾아뵙겠습니다. 계속 읽어보시고 계속 지원해 주세요.