이번시간은 셸 스크립트의 기본적인 문법에 대해 공부하는 시간을 가져보도록 하겠습니다
셸 스크립트는 이것이 리눅스다의 동영상과 책에 있는 내용으로 공부하였습니다
셸 스크립트
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
paravar.sh $0은 yum 함수명, $1은 -y , 전체 파라미터 변수는 $*로 표현 그리고 파라미터 갯수표현 $# |
'❌이전글 > 이전글' 카테고리의 다른 글
정보처리기사 합격했습니다 (1) | 2019.05.24 |
---|---|
DNS란 무엇인가 재귀적,반복적 쿼리 (2) | 2019.05.21 |
셸 스크립트의 기초를 배우자(2) if~case문 (0) | 2019.05.15 |
티스토리 블로그 네이버에 노출 웹마스터도구 (1) | 2019.05.12 |
리눅스(centos7) - 하드디스크 추가에서 오토마운트까지 (0) | 2019.05.07 |
티스토리 마우스 드래그 복사금지 (2) | 2019.05.06 |
티스토리 기본 글자색 검정색으로 변경하기 (3) | 2019.05.06 |
리눅스centos7 - 응급복구(2) GRUB 부트로더 (0) | 2019.05.02 |