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

쉘프로그래밍강좌039: 쉘프로그램내에서 사용되는 while반복문의 사용방법과 실 사용 예

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

쉘프로그래밍강좌039: 쉘프로그램내에서 사용되는 while반복문의 사용방법과 실 사용 예

 

 

 

 

 

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

 

 

 

 

 

그리고 “do ~ done”내에는 반복되는 동안 실행될 내용들과 함께 조건식을 변화시키는 변수의 수식이 들어가는 것이 일반적입니다.

 

 

 

 , 1씩 증가를 시킨다든가? 또는 1씩 감소를 시키는 등과 같이 특정 조건에서 while문이 종료될 수 있도록 조건식에 변화를 주는 수식이 들어가게 됩니다.

 

 

 

 물론 무한루프문의 경우에는 그렇지 않을 수도 있습니다.

 

 

 

 

 

[권고사항]

 

 

 

while반복문은 until반복문과 비교해 보셔야 합니다.

 

 

  반복문이라는 의미에서는 같은것이지만 반복하는 조건문의 의미는 서로 다르기 때문입니다.

 

 

 

 따라서 이 웹사이트(www.linux.co.kr) until강좌를 검색해서 보시면  while반복문과 until반복문과의 차이점에 대하여 설명하였습니다.

 

 

 

 꼭 참고하시기 바랍니다.

 

 

 

 

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

 

 

 

 

 

while (조건문) 


do

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

done

 

 

 

 

말씀드린바와 같이 조건문의 값이 참일 경우에 “do ~ done”의 내용을 계속해서 실행이 됩니다.

 

 

 

 done문을 만나면 while문의 처음으로 돌아가서 다시 조건문을 평가합니다.

 

 

 

 조건문이 거짓이 될 때에 while문을 종료하게 됩니다.

 

 

 

 , “조건문에서 0이 아닌 값이 나오면 거짓이 되어 while문은 종료되고 done다음에 있는 실행문으로 넘어갑니다.

 

 

 

 

 

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

 

 

 

 

 

[root@RockyLinux01 test]# cat while01.sh

#!/bin/bash

 

var1=0

 

while (( $var1 < 5 ))

do

 echo "var1 value is $var1"

 let var1+=1

done

 

[root@RockyLinux01 test]#



 

 

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

 

 

 

 

 

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@RockyLinux01 test]# ./while01.sh

var1 value is 0

var1 value is 1

var1 value is 2

var1 value is 3

var1 value is 4

[root@RockyLinux01 test]#

 

 

 

 

위의 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,017 명
  • 현재 강좌수 :  35,690 개
  • 현재 접속자 :  202 명