리눅스 셸 스크립트: Until 문을 통한 조건 반복 처리 방법
리눅스 셸 스크립트에서 ‘until’ 문은 조건이 거짓인 동안 명령을 반복적으로 실행하는 데 사용됩니다. 이 글에서는 ‘until’ 문의 기본 구조와 사용법에 대해 살펴보겠습니다.
☞ 포스트 기준: 리눅스 배포판 CentOS 7
1. Until 문의 기본 구조
until 문은 다음과 같은 기본 구조를 가집니다.
until [ 조건 ]
do
명령
done여기서 ‘조건’이 거짓(false)인 동안 ‘명령’이 반복적으로 실행됩니다. 조건이 참이 되면 반복이 종료됩니다.
2. 조건을 이용한 반복
‘until’ 문은 특정 조건이 참이 될 때까지 반복적으로 작업을 수행하는 데 유용합니다.
count=0
until [ $count -eq 10 ]
do
echo "Count: $count"
count=$((count + 1))
done이 예제에서는 ‘count’ 변수가 10이 될 때까지 숫자를 증가시키며 반복적으로 출력합니다.
3. 파일 읽기
‘until’ 문을 사용하여 파일의 내용을 줄 단위로 읽을 수도 있습니다.
until ! read line
do
echo $line
done < file.txt이 스크립트는 ‘file.txt’ 파일의 각 줄을 읽어서 출력합니다. 파일의 끝에 도달하면 반복이 종료됩니다.
4. 무한 루프
‘until’ 문은 무한 루프 형태로도 사용될 수 있으며, 특정 조건에서 반복을 종료할 수 있습니다.
until false
do
# 명령
# 루프 탈출 조건
done이 예제에서는 항상 ‘false’ 조건으로 반복되며, 특정 조건에서 ‘break’ 명령을 사용하여 루프를 탈출합니다.
5. 사용 예제
1) 사용자 입력 처리
until_1.sh 스크립트 예제
#!/bin/bash
input=""
until [ "$input" = "quit" ]
do
echo "입력을 계속하려면 아무 문자를 입력하고, 종료하려면 'quit'를 입력하세요:"
read input
echo "입력된 값: $input"
done이 스크립트는 사용자가 ‘quit’를 입력할 때까지 계속해서 입력을 받고 출력합니다.

2) 디렉토리 내 파일 목록 출력
until_2.sh 스크립트 예제
#!/bin/bash
# 디렉토리 내 파일 리스트를 파일에 저장
ls /home/user1 > file_list.txt
# 파일 리스트를 읽어들이는 until 루프
until ! read file
do
echo "File: $file"
done < file_list.txt
# 사용 후 파일 리스트 삭제
rm file_list.txt이 스크립트는 주어진 디렉토리의 파일 목록을 파일에 저장한 후, ‘until’ 문을 사용하여 파일의 각 줄을 읽어서 파일명을 출력합니다.

관련 이전 게시글
- 리눅스 셸 스크립트: While 문을 활용한 반복 작업 처리 방법
- 리눅스 셸 스크립트: For-In 문을 이용한 반복 처리 방법
- 리눅스 셸 스크립트: 변수 생성 및 사용하기
- 리눅스 셸 스크립트: if 문 사용법과 다양한 비교 방법
- 리눅스 셸 스크립트: AND 및 OR 관계 연산자
다음 글에서도 셸 스크립트에 대해 알아볼 예정입니다. 도움이 되셨다면 공유해 주세요!



