❌이전글/이전글

셸 스크립트의 기초를 배우자(1)

당근은싫지만먹어야함 2019. 5. 11. 18:45
반응형

이번시간은 셸 스크립트의 기본적인 문법에 대해 공부하는 시간을 가져보도록 하겠습니다

셸 스크립트는 이것이 리눅스다의 동영상과 책에 있는 내용으로 공부하였습니다


셸 스크립트

C언어와 유사한 방법으로 프로그래밍이 가능합니다.  

왜냐하면 리눅스의 대부분을 C언어로 작성했기 때문입니다.

별도로 컴파일하지 않아도 텍스트 파일 형태로 셸에서 바로 실행할 수 있습니다. 



쉘 스크립트의 작성과 실행

 vi name.sh 간단한 셸 스크립트작성

 

01 #!/bin/sh                                                        // bash를 사용하겠다는 의미입니다. 첫행에 꼭 써야 합니다.

02 echo "사용자 이름 :" $USERNAME"       // echo 명령어는 화면에 출력하는 명령어 

03 echo "호스트 이름 :" $HOSTNAME"

04 exit 0                                            

 // 종료 코드 반환.   0은 성공을 의미합니다. 셸 스크립트는  실행 중간에 문제가 생겨도 무조건 성공했다는메시지를 반환하기 때문에 직접 마지막에 행에서 성공인지 실패인지 반환하는 것이 좋습니다.


출력


명령어 실행

 sh 명령어로 실행

'sh name.sh' 속성을 변경할 필요가 없다는 장점


실행 가능하게 속성을 변경 후 실행

'chmod +x 파일명'  으로 소유권을 변경시킨 후  스크립트파일 실행

./name.sh 

' ./ ' 는 현재 디렉터리를 의미, 현재 디렉터리의 스크립트 파일을 실행하라는 의미.  ./를 입력하는 이유는 현재 디렉터리가 $PATH 환경 변수에 설정되어 있지 않기 때문

 


변수

 변수는 필요한 값을 계속 변경해 저장하는 개념


변수의 기본

- 셸 스크립트에서 변수를 사용하기 전에 미리 선언하지 않으며, 처음 변수에 값이 할당되면 자동으로 변수가 생성된다.

- 변수에 넣는 모든 값은 문자열(string)으로 취급. 숫자를 넣어도 문자로 취급됩니다

- 변수 이름은 대 소 문자를 구분.

- 변수를 대입할 때 '=' 좌우에 공백이 없어야합니다


ex)

hihigh="Linux zzang" x 와 z사이 공백은 " " 더블쿼터로 묶어야 오류가 나지 않습니다.


그리고 만약 hihigh=1+1로 선언 하고 echo로 출력하는 것은 '2'가 아니라 '1+1'입니다



변수의 입력과 출력

 vi var1.sh 를 만들어 보겠습니다


01 #!/bin/sh

02 hi="hi high"

03 echo $hi

04 echo "$hi"

05 echo '$hi'

06 echo \$hi

07 echo input :

08 read hi

09 echo 'hi' = $hi

10 exit 0



$가 문자가 들어간 글자를 출력하려면  ' ' 싱글 쿼터로 묶어주거나 앞에 \역슬래시를 붙여줘야 합니다

8행은 변수 hi 에  값을 입력합니다



숫자 계산

변수에 넣은 값은 모두 문자열로 취급

변수에 들어 있는 값에 +, -, /, * 등 연산을 하려면 expr 키워드를 사용, 수식과 함께 꼭 ` 역따옴표 로 묶어줘야함

수식에 괄호 와  * 를 사용하려면 앞에 \를 붙여줘야함  -> 07행 참고



 numcalc.sh


01 #!/bin/sh

02 num1=100

03 num2=$num1+200

04 echo $num2

05 num3=`expr $num1 + 200`

06 echo $num3

07 num4=`expr \( $num1 + 200 \) / 10 \* 2`

08 echo $num4

09 exit 0


결과



파라미터 변수

 파라미터(parameter) 변수는 $0 $1 $2 $3 $4 등 형태를 갖습니다. 명령의 부분 하나하나를 변수로 지정한다는 뜻입니다.

ex) yum -y install httpd를 실행한다고 가정할 때의 파라미터 변수

yum  -y   install   httpd

$0    $1   $2       $3

 명령어

yum

-y 

install  

httpd 

 파라미터 변수

$0 

$1 

$2 

$3 


paravar.sh


$0은 yum 함수명, $1은 -y , 전체 파라미터 변수는 $*로 표현 그리고 파라미터 갯수표현 $#
















반응형