1. 개요
확장자 .sh 로 끝나는 파일
쉘을 통해 프로그램을 만든 것으로 윈도우나 도스의 batch 파일과 비슷하지만 좀더 강력한 기능들을 가짐.
파일 내용의 시작을 #! 로 작성해야함.
기본 약속으로 #! 은 본 쉘인 #! /bin/sh 로 인식됨.
배쉬 쉘을 이용하고자 하면 #! /bin/bash 로 작성하면 됨.
2. 쉘 스크립트의 실행
스크립트의 실행권한을 확인한뒤 (ls -al : 현재 디렉토리의 파일들의 자세한 정보를 보여주는 명령어)
실행권한이 없으면 chmod -x 파일명 명령어를 통해 실행권한을 부여하고
./파일명.sh 로 실행하면 된다.
3. 변수
쉘 스크립트의 변수는 기본적으로 문자열로 인식된다.
숫자로 사용하고싶다면 `expr 변수` 으로 쓰면 된다.
양 끝을 `(숫자 1키 왼쪽)로 감싸주는 것이 포인트.
expr 와 변수, 연산자 사이에는 무조건 공백 1개씩을 두어야 한다.
변수의 선언은 변수명=값 으로 선언하고 공백을 주면 안된다.
변수를 쓰고싶다면 $변수명 으로 사용하면 된다.
4. 명령줄 인수.
총 9개의 명령줄 인수를 사용할수 있고
$0~$9 로 사용한다.
$0 는 함수명,파일명 이고
$1~$9 는 순서에 맞는 인수 값이다.
5. 입-출력
입력 : read 변수명.
출력 : echo 변수명. 변수명 앞에 -n을 써주면 줄넘김을 하지 않는다.
출력에는 C언어의 printf 를 사용할수도 있지만 소괄호 () 가 생략된다.
6. 연산자
기본연산자는 기본적으로 C와 같다.
+ : 더하기
- : 빼기
* : 곱하기
/ : 나누기
% : 나머지
괄호와 곱하기 앞에는 항상 \(역 슬래쉬)를 붙여줄것.
7. 조건문
if로 시작. fi 로 끝.
if[조건]
then
elif[조건]
then
else
fi
의 형식으로 사용한다.
8. 비교
숫자
$A -gt $B : A가 B보다 큼
$A -lt $B : A가 B보다 작음
$A -ge $B : A가 B보다 크거나 같음.
$A -le $B : A가 B보다 작거나 같음.
$A -eq $B : A와 B가 같음.
$A -ne $B : A와 B가 다름.
문자
"str1" = "str2" : 문자열이 같다. ==도 가능.
"str1" ! "str2" : 문자열이 다르다.
-z "str" : 문자열 길이가 0인경우 참.
-n "str" : 문자열의 길이가 0이 아닌경우 참.
관계 연산자
-a : and
-o : or
9. 반복문
for 문
in 뒤에 오는 변수들을 순차적으로 변수에 대입하면서 반복문을 실행한다.
변수들의 개수 만큼 do 이하의 문장을 실행.
마지막으로 done을 실행하며 종료함.
for 변수명 in 변수들
do
done
while 문
조건문이 참인 경우에 do done 사이를 실행한다.
:와 1은 항상 참.
break문과 continue문을 사용할 수 있다.
while [조건문]
do
done
until 문
while 문과 거의 같은 기능.
단 조건이 거짓일때 루프를 돈다.
until [조건]
do
done
case 문
입력된 변수의 패턴에 일치하는 부분만 실행됨.
각 패턴에 ) 로 구분하고
*) 는 설정한 패턴 이외의 모든 상황을 커버하는 예외문.
esac로 끝.
case 변수 in
패턴1)
문장
끝 ;;
패턴2)
문장
끝;;
*)
문장
끝;;
esac
10.함수
본문 시작전에 모든 함수는 선언및 정의를 해야한다.
기존의 프로그래밍처럼 선언후 메인 정의는 사용할 수 없다.
'{Programing} > Server' 카테고리의 다른 글
mysql 문제 발생. (0) | 2017.11.06 |
---|---|
리눅스 쉘 스크립트 예제 분석 (0) | 2017.10.23 |
(리눅스) - make 관련 (0) | 2017.10.09 |
1. TCP 기본 (0) | 2017.03.02 |
정리계획 (0) | 2017.02.18 |
댓글