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

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

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



