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

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

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

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

 

 

 

 

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

 

 

 

 , until문과 while문은 비슷해 보이지만 조건문의 의미가 상반된 경우입니다.

 

 

 

 아래 until문과 while문의 간단한 비교를 잘 보시기 바랍니다.

 

 

 

 

 

while은 조건문이 이면 “do ~ done”내용을 계속 반복 실행한다.

 

 

 

 , 조건문이 거짓이면 while문을 종료하고 done다음으로 넘어간다.

 

 

 

 

 

until은 조건문이 거짓이면 “do ~ done”내용을 계속 반복 실행한다.

 

 

 

 , 조건문이 참이면 until문을 종료하고 done다음문으로 넘어간다.

 

 

 

 

 

 

 

 

위의 차이점은 분명히 이해하시기 바랍니다.

 

 

 

 

 

첨언한다면 사실, while until은 전혀 헷갈리지 않습니다.

 

 

 

 영문구조만 이해하신다면 너무나 당연한 것입니다.

 

 

 

 , while참일동안...”이라는 의미하며,

until참이 될때까지...”라는

 

 

의미이기 때문입니다.

 

 

 

 

 

다음은 until문의 사용형식입니다.

 

 

 

 

 

until 조건문


do

  조건문이 거짓일 동안에 실행될 명령문들

done

 

 

 

 

말씀드린바와 같이 조건문의 값이 거짓일 동안에“do ~ done”의 내용을 계속해서 반복실행합니다.

 

 

 

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

 

 

 

 조건문이 참이면 until문을 종료하게 됩니다.

 

 

 

 , “조건문의 결과가 0이면 참이 되어 until문은 종료되고 done다음에 있는 문장으로 넘어갑니다.

 

 

 

 

 

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

 

 

 

 

 

[root@RockyLinux01 test]# cat until01.sh

#!/bin/bash

 

var1=0

 

until (( $var1 == 5 ))

do

 echo "var1 value is $var1"

 let var1+=1

done

[root@RockyLinux01 test]#

 

 

 

 

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

 

 

 

 

 

var1=0

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

 

 

 

 

 

until (( $var1 == 5 ))

var1의 변수값이 5와 같을 때까지 계속해서 반복합니다.

 

 

 

 만약 var1값이 5가 되면  until반복문을 종료하고 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회 반복될 것입니다.

 

 

 

 

 

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

 

 

 

 

 

[root@RockyLinux01 test]# ./until01.sh

var1 value is 0

var1 value is 1

var1 value is 2

var1 value is 3

var1 value is 4

[root@RockyLinux01 test]#

 

 

 

 

 

위의 until01.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가 되었을 때 조건문이 참이 되어 until반복문이 종료됩니다.

 

 

 

 

 

그리고 done다음에 실행될 명령문이 없으므로 이 쉘프로그램은 종료됩니다.

 

 

 

 

 

 

 

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,041 명
  • 현재 강좌수 :  35,855 개
  • 현재 접속자 :  130 명