반응형
영상 요약: 리눅스 쉘 스크립트에서 반복문 (Loop) 활용하기
이 영상에서는 리눅스 배시(Bash)에서 반복적으로 실행해야 하는 작업을 자동화하는 방법을 다룬다.
즉, 반복문을 사용하여 특정 작업을 여러 번 수행하는 방법을 배우는 내용이다.
🔹 1. 산술 연산 (Arithmetic Operations)
💡 쉘 스크립트에서 숫자를 계산하는 방법
반복문을 사용할 때 숫자를 증가시키거나 줄이는 연산이 필요합니다.
리눅스에서는 expr과 let 명령어를 사용하여 덧셈, 뺄셈, 곱셈, 나눗셈 등의 연산을 수행할 수 있습니다.
✅ expr 명령어 (외부 명령어)
x=5
y=3
sum=$(expr $x + $y) # 5 + 3 계산
echo "결과: $sum" # 출력: 결과: 8
- expr은 공백을 반드시 포함해야 함 (expr $x+$y → ❌ 오류 발생)
✅ let 명령어 (내장 명령어)
x=5
let x=x+3
echo "x: $x" # 출력: x: 8
- let은 공백 없이 사용 가능 (let "x+=3" 형태로도 가능)
- x++ 또는 x-- 같은 증감 연산자 사용 가능
🔹 2. while 반복문 (조건을 만족하는 동안 실행)
💡 조건이 참(true)인 동안 특정 명령을 반복 실행함
✅ 기본 구조
while [ 조건 ]; do
명령어
done
✅ 예제: 숫자 증가시키기
x=1
while [ $x -le 5 ]; do
echo "x 값: $x"
let x=x+1
done
출력:
x 값: 1
x 값: 2
x 값: 3
x 값: 4
x 값: 5
- x가 5 이하일 때까지 반복됨
🔹 3. until 반복문 (조건이 거짓일 동안 실행)
💡 조건이 false일 동안 반복 실행됨
✅ 기본 구조
until [ 조건 ]; do
명령어
done
✅ 예제: 숫자 증가시키기
x=1
until [ $x -gt 5 ]; do
echo "x 값: $x"
let x=x+1
done
출력:
x 값: 1
x 값: 2
x 값: 3
x 값: 4
x 값: 5
- x > 5가 될 때까지 반복
📌 while과 until 차이점
- while → 조건이 true일 때 실행
- until → 조건이 false일 때 실행
🔹 4. for 반복문 (리스트 또는 범위 기반 반복 실행)
💡 미리 정해진 리스트의 요소를 하나씩 가져와서 반복 실행함
✅ 기본 구조
for 변수 in 리스트; do
명령어
done
✅ 예제: 숫자 리스트 반복
for num in 1 2 3 4 5; do
echo "현재 숫자: $num"
done
출력:
현재 숫자: 1
현재 숫자: 2
현재 숫자: 3
현재 숫자: 4
현재 숫자: 5
✅ 예제: 파일 리스트 반복
for file in /etc/*.conf; do
echo "설정 파일: $file"
done
- /etc/ 디렉토리의 모든 .conf 파일을 출력함
✅ 예제: seq 명령어를 사용한 반복
for num in $(seq 1 5); do
echo "숫자: $num"
done
출력:
숫자: 1
숫자: 2
숫자: 3
숫자: 4
숫자: 5
🔹 5. 반복문에서 break와 continue 사용하기
💡 반복문을 강제 종료하거나 특정 조건에서 다음 반복으로 건너뛸 수 있음
✅ break: 반복문 종료
for num in 1 2 3 4 5; do
if [ $num -eq 3 ]; then
break
fi
echo "현재 숫자: $num"
done
출력:
현재 숫자: 1
현재 숫자: 2
- num이 3이 되면 반복문 종료됨
✅ continue: 현재 반복을 건너뛰고 다음 반복 실행
for num in 1 2 3 4 5; do
if [ $num -eq 3 ]; then
continue
fi
echo "현재 숫자: $num"
done
출력:
현재 숫자: 1
현재 숫자: 2
현재 숫자: 4
현재 숫자: 5
- num이 3일 때 continue가 실행되어 echo 명령어를 건너뜀
🔹 6. 실습 예제: 사용자 계정 생성 스크립트
💡 반복문을 사용하여 사용자 계정을 자동으로 생성하는 스크립트
✅ 스크립트 코드
#!/bin/bash
while true; do
echo -n "새로운 사용자 이름을 입력하세요: "
read username
# 입력한 사용자 이름이 존재하는지 확인
if id "$username" &>/dev/null; then
echo "오류: '$username' 계정이 이미 존재합니다. 다른 이름을 입력하세요."
else
useradd "$username"
echo "사용자 '$username'이 생성되었습니다."
break
fi
done
📌 실행 예제
$ bash create_user.sh
새로운 사용자 이름을 입력하세요: testuser
사용자 'testuser'이 생성되었습니다.
- 기존에 존재하는 계정을 입력하면 다시 입력받고, 없는 경우 계정을 생성
📌 💡 정리
- 산술 연산 (expr, let)
- expr: 쉘 외부 명령어 (공백 필수)
- let: 쉘 내장 명령어 (공백 없이 사용 가능)
- 반복문 종류
- while → 조건이 true일 때 반복
- until → 조건이 false일 때 반복
- for → 미리 정해진 리스트를 순회하며 반복
- 제어문
- break → 반복문 즉시 종료
- continue → 현재 반복을 건너뛰고 다음 반복 실행
- 응용
- 사용자 입력을 받아 계정을 생성하는 대화형 스크립트 작성 가능
- 디렉토리 내 모든 파일을 순회하면서 특정 작업 수행 가능
🚀 반복문을 이해하면 리눅스 쉘 스크립트에서 강력한 자동화 기능을 구현할 수 있음
반응형
'따배셸' 카테고리의 다른 글
| [따배셸] 8. Branching (0) | 2025.02.13 |
|---|---|
| [따배셸] 7. Input&Output (0) | 2025.02.13 |
| [따배셸] 6. Positional Parameters (0) | 2025.02.13 |
| [따배셸] 5. Bash shell script란 (0) | 2022.11.14 |
| [따배셸] 4. Bash shell과 Rules 2 (0) | 2022.11.14 |