Unix / Linux-쉘 루프 유형

이 장에서는 Unix의 쉘 루프에 대해 설명합니다. 루프는 일련의 명령을 반복적으로 실행할 수있는 강력한 프로그래밍 도구입니다. 이 장에서 우리는 쉘 프로그래머가 사용할 수있는 다음 유형의 루프를 조사 할 것입니다.

  • while 루프
  • for 루프
  • until 루프
  • 선택 루프

상황에 따라 다른 루프를 사용합니다. 예를 들어while루프는 주어진 조건이 참일 때까지 주어진 명령을 실행합니다. 그만큼until 루프는 주어진 조건이 참이 될 때까지 실행됩니다.

좋은 프로그래밍 연습이 있으면 전문 지식을 습득하고 상황에 따라 적절한 루프를 사용하기 시작합니다. 여기,whilefor 루프는 다음과 같은 대부분의 다른 프로그래밍 언어에서 사용할 수 있습니다. C, C++PERL

중첩 루프

모든 루프는 중첩 개념을 지원하므로 하나의 루프를 다른 유사한 루프 또는 다른 루프 안에 넣을 수 있습니다. 이 중첩은 요구 사항에 따라 무제한으로 이동할 수 있습니다.

다음은 중첩의 예입니다. while고리. 다른 루프는 비슷한 방식으로 프로그래밍 요구 사항에 따라 중첩 될 수 있습니다.

while 루프 중첩

while 루프를 다른 while 루프 본문의 일부로 사용할 수 있습니다.

통사론

while command1 ; # this is loop1, the outer loop
do
   Statement(s) to be executed if command1 is true

   while command2 ; # this is loop2, the inner loop
   do
      Statement(s) to be executed if command2 is true
   done

   Statement(s) to be executed if command1 is true
done

다음은 루프 중첩의 간단한 예입니다. 9까지 세는 데 사용했던 루프 안에 또 다른 카운트 다운 루프를 추가해 보겠습니다.

#!/bin/sh

a=0
while [ "$a" -lt 10 ]    # this is loop1
do
   b="$a"
   while [ "$b" -ge 0 ]  # this is loop2
   do
      echo -n "$b "
      b=`expr $b - 1`
   done
   echo
   a=`expr $a + 1`
done

그러면 다음과 같은 결과가 생성됩니다. 방법에 유의하는 것이 중요합니다.echo -n여기서 작동합니다. 여기-n 옵션은 에코가 줄 바꾸기 문자를 인쇄하지 않도록합니다.

0
1 0
2 1 0
3 2 1 0
4 3 2 1 0
5 4 3 2 1 0
6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
8 7 6 5 4 3 2 1 0
9 8 7 6 5 4 3 2 1 0