Linux의 Bash 쉘 스크립트에서 조건문 사용 방법에 대해서 알아보겠습니다.
1. Syntax
Syntax는 다음과 같습니다. 다른 언어들의 조건문과 동일하게 if, if-else, if-elif-else 패턴과 같이 사용할 수 있습니다.
if [ expression ]
then
statement
elif [ expression ]
then
statement
else
statement
fi
2. Example: if-else
다음은 if-else를 사용하는 예제입니다. $a = $b
는 a와 b가 같을 때 True, 다를 때 False가 됩니다.
#!/bin/bash
a=10
b=20
if [ $a = $b ]
then
echo "a is equal to b"
else
echo "a is not equal to b"
fi
Output:
$ bash example.sh
a is not equal to b
3. 테스트 연산자
테스트 연산자는 두개의 변수를 비교하거나, 파일의 유형이나 권한을 검사하는 연산자입니다.
if [ statement ]
에서 테스트 연산자를 이용하여 조건식을 만들 수 있습니다.
다음과 같은 테스트 연산자들이 있고, 의미는 아래와 같습니다.
Operator | Description Value |
---|---|
! EXPRESSION | The EXPRESSION is false. |
-n STRING | The length of STRING is greater than zero. |
-z STRING | The lengh of STRING is zero (ie it is empty). |
STRING1 = STRING2 | STRING1 is equal to STRING2 |
STRING1 != STRING2 | STRING1 is not equal to STRING2 |
INTEGER1 -eq INTEGER2 | INTEGER1 is numerically equal to INTEGER2 |
INTEGER1 -gt INTEGER2 | INTEGER1 is numerically greater than INTEGER2 |
INTEGER1 -lt INTEGER2 | INTEGER1 is numerically less than INTEGER2 |
-d FILE | FILE exists and is a directory. |
-e FILE | FILE exists. |
-r FILE | FILE exists and the read permission is granted. |
-s FILE | FILE exists and it's size is greater than zero (ie. it is not empty). |
-w FILE | FILE exists and the write permission is granted. |
-x FILE | FILE exists and the execute permission is granted. |
4. Example: if-elif-else
다음은 if-elif-else를 사용하는 예제입니다. [ $a -lt $b ]
는 a < b
의 의미입니다.
#!/bin/bash
a=10
b=20
if [ $a = $b ]
then
echo "a is equal to b"
elif [ $a -lt $b ]
then
echo "a is less than b"
else
echo "a is not equal to b"
fi
Output:
$ bash example.sh
a is less than b
5. Example: if not..
[ expression ]
에 not을 적용하려면, ! [ expression ]
또는 [ ! expression ]
처럼 표현식에 !를 붙이면 됩니다.
#!/bin/bash
a=10
b=20
if ! [ $a = $b ]
then
echo "a is not equal to b"
else
echo "a is equal to b"
fi
Output:
a is not equal to b
6. OR 또는 AND 연산자
두개의 조건에 OR 또는 AND 연산자를 적용할 수 있습니다.
AND 연산자는 [ expression ] && [ expression ]
와 같이 사용할 수 있습니다.
#!/bin/bash
a=10
b=20
if [ $a = 10 ] && [ $b = 20 ]
then
echo "a is 10 and b is 20"
fi
Output:
a is 10 and b is 20
OR 연산자는 [ expression ] || [ expression ]
와 같이 같이 사용할 수 있습니다.
#!/bin/bash
a=10
b=20
if [ $a = 10 ] || [ $b = 10 ]
then
echo "a is 10 or b is 10"
fi
Output:
a is 10 or b is 10
References
Loading script...
Related Posts
- Bash Shell - 문자열에서 마지막 문자 N개 제거
- Bash Shell - 문자열에서 첫번째 문자 N개 제거
- Bash Shell - 실행 시간 측정 방법
- Bash Shell - 나눗셈에서 버림, 올림, 반올림 처리
- Bash Shell - 숫자가 양수인지 음수인지 확인하는 방법
- Bash Shell - 자신의 스크립트 파일 이름 가져오기
- Bash Shell - 문자열 출력 방법(echo, printf)
- Bash Shell - seq 명령어로 반복문 구현 및 예제
- Bash Shell - File 테스트 연산자
- Bash Shell - 무한 루프 (Infinite loop)
- Bash Shell - 숫자 비교 연산자
- Bash Shell - 문자열 비교 연산자
- Bash Shell - 대문자, 소문자로 변환 (Uppercase, Lowercase)
- Bash Shell - 스트립트를 root로 실행했는지 확인
- Bash Shell - 명령어 실행 결과를 변수에 저장
- Bash Shell - select로 선택 메뉴 구현
- Bash Shell - 변수가 정의되었는지 확인하는 방법
- Bash Shell - sleep 함수, 특정 시간 멈추기
- Bash Shell - 파일이 존재하는지 확인
- Bash Shell - 문자열 자르기 (substring, split)
- Bash Shell - 날짜, 시간 가져오기
- Bash Shell - Case 조건문
- Bash Shell - 파일 읽는 방법
- Bash Shell - 사용자로부터 입력 받기
- Bash Shell - 문자열을 연결하는 방법
- Bash Shell - 파일 생성 및 문자열 추가
- Bash Shell - 숫자 변수 증가/감소 시키기
- Bash Shell - 배열 할당, 길이, 객체 포함 여부 확인
- Bash Shell - 문자열 비교, 문자열 포함 여부 확인
- Bash Shell - 변수 선언, 할당
- Bash Shell - 조건문(if-else)
- Bash Shell - 숫자 연산 (더하기, 빼기, 곱하기, 나누기)
- Bash Shell - 반복문(for, while, until loop)
- Bash Shell - Command Line으로 전달된 인자 받기
- Bash Shell - 함수(Function)