강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

레벨247-1 : 쉘프로그램내에서 사용되는 while반복문의 사용방법과 실 사용 예

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

레벨247-1 : 쉘프로그램내에서 사용되는 while반복문의 사용방법과 사용

 

리눅스 쉘프로그램내에서 사용되는 while문은 주어진 조건식이 참일 경우에(종료코드가 0 경우에 ) “do ~ done” 내용을 반복적으로 실행하는 반복문입니다.

 

그리고 “do ~ done”내에는 반복되는 동안 실행될 내용들과 함께 조건식을 변화시키는 변수의 수식이 들어가는 것이 일반적입니다. , 1 증가를 시킨다든가? 또는 1 감소를 시키는 등과 같이 특정 조건에서 while문이 종료될 있도록 조건식에 변화를 주는 수식이 들어가게 됩니다. 물론 무한루프문의 경우에는 그렇지 않을 수도 있습니다.  

 

[권고사항]

while반복문은 until반복문과 비교해 보셔야 합니다.  반복문이라는 의미에서는 같은것이지만 반복하는 조건문의 의미는 서로 다르기 때문입니다. 따라서 책의 until명령어편에서 while반복문과 until반복문과의 차이점에 대하여 설명하였습니다. 참고하시기 바랍니다.

 

 

다음은 while 일반적인 사용형식입니다.  

 

while (조건문) 


do

  반복되는 동안 실행될 명령문들

done

 

말씀드린바와 같이 조건문 값이 참일 경우에 “do ~ done” 내용을 계속해서 실행이 됩니다. done문을 만나면 while문의 처음으로 돌아가서 다시 조건문 평가합니다. “조건문 거짓이 때에 while문을 종료하게 됩니다. , “조건문에서 0 아닌 값이 나오면 거짓이 되어 while문은 종료되고 done다음에 있는 실행문으로 넘어갑니다.

 

다음은 while반복문을 이용한 간단한 쉘프로그램입니다.

 

[root@command root]# cat while01.sh

#!/bin/bash

 

var1=0

 

while (( $var1 < 5 ))

 

do

 

 echo "var1 value is $var1"

 

 let var1+=1

 

done

[root@command root]#


위의 쉘프로그램의 내용을 설명하면 다음과 같습니다.

 

var1=0

var1변수의 초기값으로 0 할당되었습니다.

 

while (( $var1 < 5 ))

var1 변수값이 5보다 작을 때까지 계속해서 반복합니다. 만약 var1 5 같거나 경우에는 while반복문을 종료하고 done다음의 실행문으로 넘어갑니다.

 

do

 echo "var1 value is $var1"

 let var1+=1

done

 

var1 값이 5보다 작을 동안에 실행될 내용입니다. 반복문 내에 있는“let var+=1”  한번씩 실행될 때마다 var1 값이 1 증가되어 조건문의 상태를 변화시킵니다.

 

결론적으로 쉘프로그램은 var1 값이 0, 1, 2, 3, 4 각각 한번씩 실행되며 모두 5 반복될 것입니다.

 

다음은 위의 while01.sh 쉘프로그램을 실행한 예입니다.

 

[root@command root]# ./while01.sh

var1 value is 0

var1 value is 1

var1 value is 2

var1 value is 3

var1 value is 4

[root@command root]#

 

위의 while01.sh쉘프로그램의 실행과정을 간단히 설명하면 다음과 같습니다.

 

var1변수에 0 할당되었을 var1 value is 0”이 출력되고 var1변수값이 1 증가되어 1 됩니다.
var1
변수가 1 되었을 var1 value is 1”이 출력되고 var1변수값이 1 증가되어 2 됩니다.

var1변수가 2 되었을 var1 value is 2”가 출력되고 var1변수값이 1 증가되어 3 됩니다.

var1변수가 3 되었을 var1 value is 3”이 출력되고 var1변수값이 1 증가되어 4 됩니다.

var1변수가 4 되었을 var1 value is 4”가 출력되고 var1변수값이 1 증가되어 5 됩니다.

var1변수가 5 되었을 조건문이 거짓이 되어 while반복문이 종료됩니다.

그리고 done다음에 실행될 문이 주어져 있지 않았으므로 쉘프로그램은 종료됩니다.

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  95 명