리눅스 셸 스크립트: While 문을 활용한 반복 작업 처리 방법

리눅스 셸 스크립트: While 문을 활용한 반복 작업 처리 방법

리눅스 셸 스크립트에서 while 문은 조건이 참인 동안 반복적으로 명령을 실행하는 효과적인 방법을 제공합니다. 이 글에서는 while 문의 기본 구조와 다양한 활용법에 대해 알아보겠습니다.

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’를 입력할 때까지 계속해서 입력을 받고 출력합니다.

리눅스 셸 스크립트 While 문을 이용하여 사용자 입력 처리 예시

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 문을 사용하여 파일의 각 줄을 읽어서 파일명을 출력합니다.

리눅스 셸 스크립트 While 문을 이용하여 디렉토리 내 파일 목록 출력 예시

관련 이전 게시글

위로 스크롤