본문 바로가기
따배셸

[따배셸] 9. looping

by Engineer-Lee 2025. 2. 13.
반응형

영상 요약: 리눅스 쉘 스크립트에서 반복문 (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 값:
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'이 생성되었습니다.
  • 기존에 존재하는 계정을 입력하면 다시 입력받고, 없는 경우 계정을 생성


📌 💡 정리

  1. 산술 연산 (expr, let)
    • expr: 쉘 외부 명령어 (공백 필수)
    • let: 쉘 내장 명령어 (공백 없이 사용 가능)
  2. 반복문 종류
    • while → 조건이 true일 때 반복
    • until → 조건이 false일 때 반복
    • for → 미리 정해진 리스트를 순회하며 반복
  3. 제어문
    • break → 반복문 즉시 종료
    • continue → 현재 반복을 건너뛰고 다음 반복 실행
  4. 응용
    • 사용자 입력을 받아 계정을 생성하는 대화형 스크립트 작성 가능
    • 디렉토리 내 모든 파일을 순회하면서 특정 작업 수행 가능

🚀 반복문을 이해하면 리눅스 쉘 스크립트에서 강력한 자동화 기능을 구현할 수 있음

반응형

'따배셸' 카테고리의 다른 글

[따배셸] 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