쉘 스크립트란 .
쉘의 명령들을 로직에 따라 실행시키기 위해 작성한 파일이다.
(명령을 모아 프로그램으로 만든다.)
쉘 스크립트는 먼저 스크립트파일을 생성하고, 안에서 내용을 작성 후 해당 파일을 실행시킨다.
1) 스크립트파일 생성
텍스트 에디터(vim) 을 통해서 파일명.sh 로 파일을 생성한다.
첫째 행에는 특수주석인 #!/bin/sh 로 시작을 알리고,
마지막 행에는 exit 0 을 작성함으로 종료를 알린다.
2) 스크립트파일 실행
스크립트파일을 실행할때는 (현재 디렉토리에 파일이 있는경우)
> sh 파일명
> ./파일명 으로 실행이 가능하나, 아래의 경우는 따로 권한이 필요하기 때문에 위의 실행을 쓴다.
## 쉘 스크립트 작성문법
쉘 기존의 변수에 관련된 내용을 그대로 사용한다.
변수 불러올때는 마찬가지로 $ 사용.
수식을 계산할 때는 ` ` (역따옴표)로 묶고, 안에 expr키워드와 수식을 작성한다.
* 곱하기 기호와 (, )괄호는 앞에 반드시 \ (역슬래쉬) 를 붙인다.
수식 계산식(역따옴표) 안에서는 어절 단위로 무조건 띄어쓰기를 해야함.
* ** 파라미터 변수 사용 가능.
$0 부터 ..
예를 들어, apt -y install galculator 라는 명령은 $0 = apt, $1 = -y, $2=install $3=galculator 에 대응된다.
( 스크립트 작성에서 $0은 실행시 파일명을 뜻하고 1부터는 파일명 다음부터의 인자로 들어가는 것을 순서대로 말한다.
여기서 $0은 expression1.sh(파일명) , $1 은 10 $2 는 20 으로 오른쪽 계산식에 따라
답은 30이 나온다.
*** if - else 문법
C언어의 if와 비슷하나 문법이 살짝 다르다.
조건이 같다는 '='로 쓰고, 같지않다는 '!='로 쓴다
기본 문법 틀로는
if [ 조건 ] <-- if 와 대괄호, 조건사이에 공백이 들어간다.
then
참을때 실행내용
else
그렇지 않을 때 실행내용
fi <--- 끝냄
로 사용한다.
*** 참고사항
○비교 연산자 목록
■문자열 비교
●문자열 = 문자열 : 같으면 참
●문자열 != 문자열 : 같지 않으면 참
●-z 문자열 : 문자열이 NULL(빈 문자열)이면 참
●-n 문자열 : 문자열이 NULL이 아니면 참
■산술 비교
●수식1 -eq 수식2 : (equal) 두 수식(혹은 변수값)이 같으면 참
●수식1 -ne 수식2 : (not equal) 두 수식(혹은 변수값)이 다르면 참
●수식1 -gt 수식2 : (greater than) 수식1이 더 크면 참 ( 부등호 > 의미)
●수식1 -ge 수식2 : (greater equal) 수식1이 크거나 같으면 참
●수식1 -lt 수식2 : (less than) 수식1이 작으면 참 (부등호 < 의미)
●수식1 -le 수식2 : (less equal ) 수식1이 작거나 같으면 참
●!수식 : 수식이 거짓이면 참
○AND, OR 관계 연산자
■AND 조건 : && 으로 두 조건을 연결
■OR 조건 : || 으로 두 조건을 연결
■각각의 개별 조건은 [ ] (대괄호) 안에 정의 되어야함에 유의.
*** case - esac 문법 (여러조건으로 나눠서 처리할 수 있다)
C의 switch case 문과 비슷
기본 문법은
case 조건변수값 in
조건값)
실행문;; <-- 실행문 뒤에 세미콜론 두개 필수
조건값)
실행문;;
조건값)
실행문;;
*) <-- 위의 조건이 다 아닐경우
실행문;;
esac <-- 끝냄
'IT 프로그래밍 관련 > 리눅스 시작하기' 카테고리의 다른 글
Ubuntu C언어로 프로그래밍하기 ( 컴파일 ) (0) | 2021.04.01 |
---|---|
Ubuntu 쉘 스크립트 휴지통만들기!(임시) (0) | 2021.03.31 |
Ubuntu redirection, pipe , alias (0) | 2021.03.31 |
Ubuntu export 명령어와 특수문자들(및 와일드카드) (0) | 2021.03.30 |
Ubuntu shell 이란 ? (0) | 2021.03.30 |
댓글