본문 바로가기
IT/리눅스 쉘 스크립트

[shell script] 쉘 스크립트 기초 #10 - 제어문 until문 설명 및 예제

by 꾸꾸웍스 2022. 8. 7.
반응형

 


[shell script] 쉘 스크립트 기초 #10 - 제어문 until문 설명 및 예제


 

 

※ 목차

1. 쉘 스크립트 until문이란?
2. 쉘 스크립트 while과 until의 차이
3. 쉘 스크립트 until문 문법
4. 쉘 스크립트 until문 기본 예제
5. 쉘 스크립트 until문 예제 응용

 

 

1. 쉘 스크립트 until문이란?

 

리눅스 쉘 스크립트에서 until문이란? 리눅스 쉘(linux shell)에서 사용하는 쉘 스크립트 또는 쉘 프로그래밍 until문은 프로그래밍 언어에서 사용하는 루프 구조중 하나로서 특정 조건이 참이 될 때까지 주어진 명령을 순차적으로 반복하는 제어문 중 하나입니다. 즉 until문은 조건이 거짓인 동안에 반복하는 제어문입니다.

 

 

2. 쉘 스크립트 while과 until의 차이

 

while문 알고리즘 설명

while문은 until문과 동일하게 condition의 조건을 입력해야 되며 do로 시작하여 done사이에 명령(statements..)이 참인 경우에 반복을 하며 조건이 거짓이 되면 done로 until문을 종료합니다.

 

until문 알고리즘 설명

until문은 while문과 동일하게 condition의 조건을 입력해야 되며 do로 시작하여 done사이에 명령(statements..)이 거짓인 경우에 반복을 하며 조건이 참이 되면 done로 until문을 종료합니다.

 

while문 동작

위 사진의 while문의 예시는 A의 초기값은 0이고 while문은 A의 값이 5보다 작으면 참이라는 조건의 제어문입니다. 따라서 A는 0부터 시작하기 때문에 5보다 작으니 A의 값을 출력하고 1을 더해 다시 조건에서 값을 비교하게 됩니다. do와 done사이를 반복하다 A의 값이 5가 되어 조건을 비교하면 A의 값 5는 비교 5와 같기 때문에 while문이 조건이 거짓이 되어 A가 참일 때까지의 4의 값을 출력하고 종료하게 됩니다.

 

until문 동작

위 사진의 until문의 예시는 A의 초기값은 0이고 until문은 A의 값이 5보다 크면 참이라는 조건의 제어문입니다. 따라서 A는 0부터 시작하기 때문에 5보다 작으니 A의 값을 출력하고 1을 더해 다시 조건에 값을 비교하게 됩니다. do와 done사이를 반복하다 A의 값이 6이 되어 조건을 비교하면 A의 값은 6이고 비교 5보다 크기 때문에 unitl문이 참이 되어 A가 거짓일 때까지의 5의 값을 출력하고 종료하게 됩니다.

 

 

반응형

 

 

3. 쉘 스크립트 until문 문법

 

리눅스 쉘 스크립트 제어문 until의 기본 문법은 until의 condition이 거짓이면 do와 done의 있는 사이의 명령을 반복적으로 실행하며 condition의 조건이 참일 때까지 반복 실행합니다.

 

 

4. 쉘 스크립트 until문 기본 예제

 

$ cat until.sh

#!/bin/bash

until [ "$A" = "end" ]
do
	echo -n "마치고 싶다면 \"end\"를 입력하세요 : "
    read A
    echo $A
done

▼ until.sh 실행 결과

 

until.sh 쉘 스크립트 파일은 read로 입력받은 A가 end와 같다면 참으로 종료하는 스크립트 파일입니다. end가 아닌 다른 문자나 숫자 등 입력하였을 때 조건이 거짓이라서 계속 반복하지만 end를 입력하는 순간 until.sh의 조건이 참이어서 until문을 종료하게 됩니다.

 

 

 

 

5. 쉘 스크립트 until문 예제 응용

 

until문은 while문과 동작 방식이 다른 개념을 알고 있으면 어떤 조건에 맞춰서 사용하느냐 즉, 응용을 어떻게 하느냐에 따라 달렸습니다. 흔히 while문을 많이 사용하며 until문을 사용할 경우는 while문보다는 적습니다. until문과 while문의 참과 거짓에 따라 작동 방식은 다르지만 둘의 공통점은 특정 조건에 따라 반복한다는 점입니다. 어떤 것을 모니터링해야 되는 상황이나 특정 조건에서 종료하는 스크립트를 사용해야 되면 조건에 따라 until이나 while의 제어문을 사용하면 됩니다.

 

$ cat until.sh

#!/bin/bash

USAGE=`df -h | grep backup | awk '{print $5}'`

until [ "$USAGE" = "80%" ]
do
	echo -e "backup usage: $USAGE \033[1;32m OK \033[m"
    	sleep 5
done

▼ until.sh 실행 결과

 

위 예시는 df -h로 현재 사용하는 서버의 파티션 디스크 용량 중 backup 디렉터리를 사용하는 파티션 용량이 80%가 되면 종료되는 간단한 스크립트 파일입니다. 용량이 80%가 될 때까지 매 5초마다 until문이 반복되며 80%가 되면 종료됩니다. 이 처럼 while문이나 until문을 사용해 특정 조건이 될 때까지 반복하는 경우나 어떠한 경우를 모니터링해야 되는 상황이면 상황에 맞게 쉽게 쉘 스크립트를 응용하여 사용할 수 있는 장점이 있습니다.

 

 


쉘 스크립트 while문의 기초 및 예제와 echo를 활용하여 출력 색상을 변경하는 자세한 내용이 궁금하시다면 아래 링크를 참고해주세요

 

https://rhrhth23.tistory.com/117

 

[shell script] 쉘 스크립트 기초 #9 - 제어문 while문 설명 및 예제

[shell script] 쉘 스크립트 기초 #9 - 제어문 while문 설명 및 예제 ※ 목차 1. 쉘 스크립트 while문이란?? 2. 쉘 스크립트 for문과 while문의 차이 3. 쉘 스크립트 while문 문법 4. 쉘 스크립트 whi..

rhrhth23.tistory.com

 

반응형
그리드형

댓글