셸 스크립트에서도 조건문을 사용할 수 있다.
오늘은 if문을 다뤄 보도록 하자.
기존에 다른 프로그래밍 언어를 다뤄 본 사람이라면 어렵지 않을 것이다.
숫자 두 개를 키보드로 입력받아 같으면 메시지를 출력하는 프로그램을 만들어 보았다.
#!/bin/sh
printf 'Enter first number : '
read num1 # 첫 번째 숫자를 입력받아 변수 num1에 저장한다.
printf 'Enter second number : '
read num2 # 두 번째 숫자를 입력받아 변수 num2에 저장한다.
if [ $num1 -eq $num2 ] # 두 숫자가 같으면
then
echo 'Numbers are same.' # 메시지를 출력한다
fi
1.
여기서 if문 부분만 따로 떼어내 보자.
사소하지만 귀찮은 것이 있다.
if [ $num1 -eq $num2 ]
if의 조건에 해당하는 부분은 대괄호[ ] 로 묶는다.
여기서 주의해야 할 것은 띄어쓰기다.
if(띄어쓰기)[(띄어쓰기)$num1 -eq $num2(띄어쓰기)]
if와 괄호 사이, 괄호와 변수 사이, 변수와 괄호 사이를 한 칸씩 띄어 써야 오류가 나지 않는다.
2.
if문을 충족시키면 실행하는 내용은 then 뒤에 입력한다.
if문이 끝나는 곳에 fi를 붙여 준다. 그래야 셸이 if문이 끝났음을 인지한다.
if [ $num1 -eq $num2 ]
then
echo 'Numbers are same.'
fi
3.
조건을 추가하고 싶을 때는 elif와 else를 쓰면 된다.
예제를 보자.
숫자 두 개를 입력받아서 비교하는 프로그램이다.
조건문이 비교하는 순서는 다음과 같다.
(1) 첫 번째 숫자가 큰지 비교한다.
(2) 아니라면 두 번째 숫자가 큰지 비교한다.
(3) 둘 다 아니라면 두 숫자는 같은 것이다.
#!/bin/sh
printf 'Enter first number : '
read num1
printf 'Enter second number : '
read num2
if [ $num1 -gt $num2 ] # num1이 num2 보다 크다면
then
echo $num1 'is bigger than ' $num2 # 이 문구를 출력한다.
elif [ $num1 -lt $num2 ] # num1이 num2 보다 작다면
then
echo $num1 'is smaller than ' $num2 # 이 문구를 출력한다.
else # 둘 다 아니라면 두 숫자는 같은 것이므로
echo 'Numbers are same.' # 이 문구를 출력한다.
fi
4.
셸에서 사용 가능한 비교 연산자는 다음과 같다.
미리 숙지해 두고 있으면 사용하기 편리해진다.
연산자 | 내용 |
A -eq B | A와 B가 같으면 TRUE |
A -ne B | A와 B가 다르면 TRUE |
A -gt B | A가 B보다 크면 TRUE |
A -ge B | A가 B보다 크거나 같으면 TRUE |
A -lt B | A가 B보다 작으면 TRUE |
A -le B | A가 B보다 작거나 같으면 TRUE |
'셸 스크립트 (Shell Script)' 카테고리의 다른 글
[셸 스크립트] 6. 반복문 while 사용하기 (0) | 2024.06.11 |
---|---|
[셸 스크립트] 5. 반복문 for 사용하기 (0) | 2024.06.10 |
[셸 스크립트] 4. 환경 변수 또는 예약변수 (0) | 2024.06.09 |
[셸 스크립트] 3. case 문 사용하기 (0) | 2024.06.09 |
[셸 스크립트] 1. 출력문과 입력문 (1) | 2024.06.06 |