쉘 스크립트

쉘 스크립트

1. 쉘 스크립트

 - 쉘이나 명령줄 인터프리터에서 돌아가도록 작성된 운영체제를 위한 스크립트

 

2. 쉘 변수

 - aa="value" (=에 공백이 없어야 함)

 - $aa 이용해서 값을 얻을 수 있음 (값이 없을 땐 빈 줄)

 - aa="" (쉘 변수 값 지우기)

 

3. 특수 변수

 - $1, $2, $3, ... : 매개변수

 - $# : 매개변수 개수

 - $* : 매개변수 전체

 - $$ : 쉘 프로그램 실행 PID

 

4. 변수 실습

 - localhost ~인 상태에서 mkdir sh-test 입력

 - cd sh-test으로 이동한 뒤, sudo vim test1.sh 입력한 후, 다음과 같이 입력

name="kim"

echo "hi my name is $name!!"

 

 - sudo chmod 765 test1.sh로 권한 변경

 - ./test1.sh로 출력하면 hi my name is kim!!으로 출력됨.

 - test2.sh도 만든 후, 다음과 같이 입력

name=$1

echo "hi my name is $name!!"

 

 - ./test2.sh Tom이라고 입력하면, hi my name is Tom!이 출력됨

 - vim test2.sh로 다시 들어가서, 다음과 같이 입력

name=$1
age=$2

echo "hi my name is $name!! I'm $age years old."

 

 - ./test2.sh Park 20이라고 입력하면, hi my name is Park!! I'm 20 years old.라고 출력됨

 

 - vim test1.sh로 들어가서 다음과 같이 입력 (test2.sh를 가져옴)

/home/user1/sh-test/test2.sh Tom 20

 

 - ./test1.sh라고 입력하면, hi my name is Tom!! I'm 20 years old.라고 출력됨

 - 다시 vim test1.sh로 들어가서 다음과 같이 입력

name=$1
age=$2

/home/user1/sh-test/test2.sh $name $age

 

 - ./test1.sh Kim 20라고 입력하면, hi my name is Kim!! I'm 20 years old.라고 출력됨

 

5. 쉘의 조건문과 반복문

 - 조건문

if [ 조건 ]	# [와 ]사이에 반드시 공백이 한칸 있어야 함
then
	명령어
fi

 

6. 조건식에서 사용되는 연산자

숫자 문자
-gt 큼 (>) = 같음 (==)
-lt 작음 (<) != 같지 않음 (!=)
-ge 크거나 같음 (>=) -z var1 var1 길이가 0인 경우
-le 작거나 같음 (<=) -n var1 var1 길이가 0이 아닌 경우
-eq 같음 (==)  
-ne 같지 않음 (!=)

 

7. 조건문 실습

 - vim test3.sh 입력 후, 다음과 같이 입력

age=$1

if [ "$age" -gt 20 ]
then
        echo "저는 성인입니다."
fi

 

 - ./test3.sh 30라고 입력하면, 저는 성인입니다.라고 출력