쉘 스크립트 if문 사용법: 초보자를 위한 쉬운 가이드
- IT / 리눅스(Linux)
- 2025. 4. 12.
안녕하세요! 오늘은 리눅스나 유닉스 환경에서 자주 쓰이는 쉘 스크립트의 if문 사용법에 대해 이야기해보려고 해요. “쉘 스크립트가 뭐야?“라는 분도 계실 텐데, 간단히 말하면 컴퓨터한테 “이거 해라, 저거 해라”라고 명령을 자동으로 실행하게 만드는 코드예요. 그중 if문은 “만약 ~라면”이라는 조건을 걸어서 작업을 제어하는 핵심 도구죠. 초보자도 따라 할 수 있게 쉽게 풀어볼게요!
if문이 뭔가요?
if문은 조건을 확인해서 그 결과에 따라 다른 일을 하게 만드는 문법이에요. 예를 들어, “만약 비가 오면 우산을 챙기고, 아니면 그냥 나가” 같은 일상 속 논리를 코드로 옮긴 거라고 생각하면 돼요. 쉘 스크립트에서는 주로 파일이 있는지, 숫자가 큰지 작은지 같은 걸 확인할 때 쓰여요.
기본 구조: 이렇게 생겼어요
쉘 스크립트에서 if문은 아래처럼 생겼어요:
if [ 조건 ]
then
# 조건이 참일 때 할 일
fi
- if [ 조건 ]: “만약 이 조건이 맞으면”이라는 뜻이에요. [ ] 안에 조건을 넣어요.
- then: 조건이 참일 때 실행할 코드를 시작해요.
- fi: if를 끝낸다는 뜻이에요(거꾸로 if를 쓴 거라고 생각하면 기억 쉬움!).
주의: [ ] 양쪽에 공백이 꼭 있어야 해요. [조건]이 아니라 [ 조건 ]로 써야 돼요!
간단한 예제: “파일이 있나요?”
파일이 있는지 확인하는 간단한 스크립트를 만들어볼게요:
#!/bin/bash
if [ -f "test.txt" ]
then
echo "test.txt 파일이 있어요!"
fi
- #!/bin/bash: 이 스크립트가 Bash 쉘로 실행된다는 뜻이에요.
- -f "test.txt": “test.txt라는 파일이 있나?“를 확인해요.
- echo: 화면에 메시지를 띄워요.
이 파일을 check.sh로 저장하고, 실행 권한을 주고(chmod +x check.sh) 실행하면(./check.sh), “test.txt”가 있으면 메시지가 나와요. 없으면 아무것도 안 나와요.
else 추가: “없으면 어쩌지?”
조건이 참이 아닐 때도 뭔가를 하고 싶다면 else를 추가하면 돼요:
#!/bin/bash
if [ -f "test.txt" ]
then
echo "test.txt 파일이 있어요!"
else
echo "test.txt 파일이 없어요..."
fi
이제 파일이 없으면 “없어요”라는 메시지가 나와요. 마치 “비가 오면 우산 챙기고, 아니면 모자 쓰자” 같은 느낌이죠.
elif로 더 조건 추가하기
조건이 여러 개일 땐 elif(else if)를 써요:
#!/bin/bash
number=10
if [ $number -gt 0 ]
then
echo "숫자가 0보다 커요!"
elif [ $number -eq 0 ]
then
echo "숫자가 0이에요!"
else
echo "숫자가 0보다 작아요!"
fi
- $number: 변수값을 가져와요(변수는 number=10처럼 정의).
- -gt: “greater than” (보다 크다).
- -eq: “equal” (같다).
이 스크립트를 실행하면 “숫자가 0보다 커요!“가 출력돼요.
자주 쓰이는 조건들
쉘 스크립트에서 조건은 [ ] 안에 넣는데, 자주 쓰이는 몇 가지를 정리해볼게요:
- 파일 관련:
- 숫자 비교:
- 문자열 비교:
예: 문자열 확인
#!/bin/bash
name="Grok"
if [ "$name" = "Grok" ]
then
echo "이름이 Grok이네요!"
fi
$name은 변수값을 꺼낼 때 쓰고, ""로 감싸는 건 공백 때문에 오류 나는 걸 막기 위해서예요.
꿀팁: 실수 줄이기
- 공백 주의: [ 조건 ]처럼 공백을 꼭 넣어요. [조건]은 에러 나요!
- 변수 감싸기: $name 대신 "$name"으로 쓰면 안전해요.
- 테스트 해보기: 스크립트 실행 전에 bash -x 스크립트.sh로 디버깅 해보세요.
쉘 스크립트 if문은 조건에 따라 작업을 나눌 때 정말 유용해요. 파일 확인, 숫자 비교, 문자열 체크 등 간단한 로직부터 시작해서 점점 복잡한 자동화까지 할 수 있죠. 마치 “만약 배고프면 밥 먹고, 아니면 간식 먹어” 같은 일상 논리를 코드로 옮기는 느낌이에요.
연습해보고 싶다면 작은 스크립트부터 써보세요. 예제 그대로 따라 해보고, 궁금한 점 있으면 언제든 댓글로 물어보세요! 다음엔 더 재밌는 쉘 스크립트 이야기로 찾아올게요. 😊
즐거운 코딩 되세요!