쉘 스크립트에 조건문을 사용하는 여러 방식이 있지만 그 중 한 가지 방식만 아래에서 소개합니다.

문법

if [조건문];then
	내용
 
elif [조건문];then
	내용
.
.
.
 
else
	내용
 
fi

예시

# test.sh
 
#! /bin/bash

if [ "a" == "$1" ]; then
	echo "1"

elif [ "b" = "$1" ]; then
	echo "2"

else
	echo "0"

fi
 
결과
$ ./test.sh
0
 
$ ./test.sh a
1
 
$ ./test.sh b
2

조건문을 사용할 때 조심해야 할 점은 대괄호 양 사이에 한 칸을 꼭 띄워써야 됩니다. 만약 붙여서 쓰게되면 에러가 발생합니다. 예를 들어 if ["a"=="$1"] 이와 같이 썼을 경우 실행 시 에러가 발생합니다. 또한 조건문에서 문자열 비교할 때 ==과 =은 동일하게 동작합니다.

쉘스크립트 파일을 실행할 때, 사용자가 입력한 인자 값은 순서대로 받을 수 있습니다.


 #! /bin/bash
echo $#   # 입력된 인자 값
echo $0   # 쉘스크립트 파일 실행 명령어
echo $1   # 첫 번째 인자 값
echo $2   # 두 번째 인자 값
echo $3   # 세 번째 인자 값
echo $4   # 네 번째 인자 값

위와 같이 test.sh 파일을 저장합니다.


$ ./test.sh
0
./test.sh
 
 
$ ./test.sh aaa
1
./test.sh
aaa


$ ./test.sh aaa bbb
2
./test.sh
aaa
bbb

위와 같이 입력된 인자값을 순서대로 처리할 수 있습니다.

파일생성

 $ sudo vi test.sh
 
 
#! /bin/bash   # bash를 사용하려면 왼쪽과 같이 선언하고 본쉘을 사용하려면 /bin/sh를 선언
 
echo "test"

위와 같이 입력하고 저장

 권한변경

파일을 생성한 다음, 바로 실행을하지 못하므로 실행할 수 있도록 권한을 수정합니다.

$ sudo chmod 755 test.sh

실행

test.sh파일이 /home/ 아래에 있다고 가정
 
$ cd /home
$ ./test.sh  # 실행
 
 
또는
 
$ /home/test.sh # 절대경로로 실행


+ Recent posts