Linux

Bash 제어 흐름

bergerac 2025. 7. 12. 09:11

🧩 조건문

1. if, elif, else

#!/bin/bash

echo "숫자를 입력하세요:"
read num

if [ $num -gt 10 ]; then
    echo "입력한 숫자가 10보다 큽니다."
elif [ $num -eq 10 ]; then
    echo "입력한 숫자가 10입니다."
else
    echo "입력한 숫자가 10보다 작습니다."
fi

✅ [ 조건식 ] 부분은 꼭 공백으로 감싸야 한다. ([1 -eq 1] ← ❌)

자주 쓰이는 조건 연산자들:

  • 정수 비교: -eq, -ne, -lt, -le, -gt, -ge
  • 문자열 비교: =, !=, -z, -n
  • 파일 존재 여부: -e, -f, -d

2. if에서 파일 조건 체크

if [ -f "./hello.txt" ]; then
    echo "hello.txt 파일이 존재합니다."
else
    echo "파일이 없습니다."
fi

3. case구문 : 선택지를 나눌 수 있음

#!/bin/bash

echo "메뉴를 선택하세요 (start/stop/restart):"
read action

case $action in
    start)
        echo "서비스를 시작합니다."
        ;;
    stop)
        echo "서비스를 중지합니다."
        ;;
    restart)
        echo "서비스를 재시작합니다."
        ;;
    *)
        echo "잘못된 명령입니다."
        ;;
esac

✅ case 문은 ;;으로 각 분기 종료를 꼭 해줘야 한다.


🔁 반복문

1. for문 :리스트나 범위를 반복할 때

for i in 1 2 3 4 5
do
    echo "반복 횟수: $i"
done

혹은 범위를 직접 생성할 수도 있다.

for i in {1..5}
do
    echo "$i 번째 줄"
done
fruits=("apple" "banana" "cherry")

for fruit in "${fruits[@]}"
do
    echo "과일: $fruit"
done

 

2. while문 : 조건이 참일 동안 반복

count=1

while [ $count -le 5 ]
do
    echo "$count 번째 반복입니다."
    ((count++))
done

count++ 는 Bash에서 C처럼숫자를 증가시킬 때 사용하는 문법이다.

 

3. until문 : 조건이 거짓일 동안 반복

x=0

until [ $x -ge 5 ]
do
    echo "x는 $x 입니다."
    ((x++))
done

while과 반대라고 생각하면 된다. 조건이 거짓일 때 반복한다.

 

4. 반복제어 : break, continue

for i in {1..10}
do
    if [ $i -eq 5 ]; then
        echo "5에서 반복 중단"
        break
    fi
    echo "i: $i"
done
for i in {1..5}
do
    if [ $i -eq 3 ]; then
        continue
    fi
    echo "i: $i"
done

 

  • break: 반복문 즉시 종료
  • continue: 해당 반복을 건너뛰고 다음 반복으로 진행

 


** 디렉토리 안 모든 .txt 파일 이름 앞에 날짜 붙이기

#!/bin/bash

today=$(date +%Y%m%d)

for file in *.txt
do
    mv "$file" "${today}_$file"
done

'Linux' 카테고리의 다른 글

스크립트 분할 관리  (2) 2025.07.14
Bash 함수(function)  (0) 2025.07.13
Bash 변수와 배열의 기초  (1) 2025.07.11
Linux file system 명령어 실습  (5) 2025.07.10
Package Manager  (2) 2025.07.09