* 쉘 스크립트란?
쉘 스크립트는 기본적으로 시스템 명령어와 프로그래밍 구문으로 이루어져 있습니다.
쉘 프로그래밍을 사용하면 반복적인 작업을 자동화할 수 있습니다.
* 쉘 스크립트 실행방법
1) sh 명령어 사용
sh 스크립트파일
2) ./ 명령어 사용
chmod +x 스크립트파일
./스크립트파일
* 쉘 스크립트 파일구조
리눅스의 기본쉘은 bash쉘이다. 본쉘을 이용하려면 #!/bin/sh 로 하면 된다.
#은 주석이다. #!은 쉘 선언할 때 사용된다.
* 쉘 스크립트 실행시 오류 정검사항
1) 퍼미션 오류 : chmod +x [스크립트파일]로 실행권한을 부여해야 한다.
2) 찾지 못하는 이유: 스크립트의 저장위치가 $PATH에 속해있지 않으면 실행이 안된다.
해당위치를 $PATH에 추가하거나, 아니면 ~/[실행경로]를 입력하여 실행한다.
(~ 홈디렉토리는 기본적으로 $PATH에 속함)
* 쉘 스크립트 변수의 선언(할당) 및 참조
쉘에서 변수는 값을 할당 하면 바로 선언된다.
a에 3을 넣고 변수 a를 출력한다. a에 13을 재 할당하고 a를 다시 출력하는 쉘 스크립트를 만들어보았다.
* 변수
쉘 스크립트에서 사용하는 변수는 아래의 표와 같습니다.
1) 환경 변수
환경변수란 쉘 환경과 관련일반적인 프로그래밍 언어에서는 전역변수 혹은 global 변수라 불리는 것을 쉘 스크립트에서는 환경변수라 합니다. 환경변수는 export 명령을 사용하여 만듭니다.
사용자가 로그인을 할 때 읽어들이는 파일 중에 /etc/profile 파일이 있습니다. 이곳을 보면 다음과 같이 export로 환경변수를 만드는 것을 찾을 수 있습니다.
환경변수는 어디서나 불러들일 수 있는 변수입니다. 콘솔 창에서 현재 있는 위치에 상관없이 echo 명령으로 변수 값을 확인할 수 있습니다.한 정보를 저장하는 변수입니다. 로그인시에 쉘에 의해 초기설정 되며, 변수명은 모두 대문자로 작성합니다. 아래는 일반적으로 많이 사용하는 환경변수 목록입니다.
2) 사용자 정의 변수
일반적인 프로그램 언어에서 정의하는 방식과 유사하며 [변수명=값] 형식으로 사용됩니다. 변수명은 문자, 숫자, 언더라인(_)으로 구성할 수 있습니다. 사용자정의변수는 해당 쉘에서만 사용이 가능하고, 자식 쉘에서 사용하려면 export 구문을 이용할 수 있습니다.
3) 특수 변수
특수 변수는 현재 쉘을 확인하거나, 쉘의 프로세스 번호, 쉘 프로그램에 아규먼트로 전달 될 때 사용됩니다. Ex) $$, $?, $#, $-, $! 등
4) 위치 매개 변수
위치 매개 변수는 명령어의 옵션 또는 아규먼트와 같이 쉘 프로그래밍에서 사용하는 아규먼트입니다. Ex) $0, $1-$9
* 쉘 스크립트 내부 명령어
* read 옵션
-a array: 입력값을 array에 할당된다.
-d delimiter: delimiter 문자열에서 개행 문자가 아닌 가장 첫번째 문자를 입력의 끝을 가리키는데 사용한다.
-e readline을 이용하여 입력을 관리한다. 이것은 커맨드 라인과 같은 방식으로 입력 내용을 편집할 수 있게 해준다.
-n num: 입력된 행 전체 대신 num 수의 문자만을 읽어온다.
-p prompt: prompt문자열을 이용하여 입력을 위한 프롬프트를 띄운다.
-r raw : raw모드 백슬래시 기호를 이스케이프로 해석하지 않는다.
-s: 시크릿모드 문자를 입력할 때 표시 하지 않는다.
-t seconds: 일정시간 후에 입력대기를 종료한다.
-u fd: 표준 입력대신 fd파일 디스크립터를 입력으로 사용한다.
* 간단한 read 예제
read를 이용해서 입력한 나이를 불러오는 예제
vi readtest
* 쉘 스크립트에서 사용하는 제어문
1) if~then~fi 문
이 조건은 참인 경우에만 실행되는 구문입니다. 만약 ~ 라면 ~ 입니다와 같은 형태 출력.
2) if~then~else~fi 문
만약 ~ 라면 ~ 이고. 아니라면 ~ 입니다.
3) if~then~elif~else 문
여러 가지 조건을 처리하기 위한 구문입니다.
* 논리 조건 연산
* if 문에 사용되는 조건식
* 위치매개변수(positional parameter)
스크립트나 함수로 넘어온 매개변수들!!!
$0, $1, $2, ... : 스크립트파일 호출 시 넘어온 인자를 차례대로 이렇게 참조하면 된다 !!!
쉘 스크립트를 작성하기 위해서는 많은 것을 알아야 하는데 그중 기초를 정리해봤습니다~
위에 적힌 것들 공부하고 쉘 스크립트 기초 -2 .... -n까지 공부하고 실제 쉘 스크립트를 이용해서 업무를 자동화합시다!
'Linux' 카테고리의 다른 글
Unix(AIX) VS Linux (0) | 2020.05.18 |
---|---|
CentOS7 putty Connect Error (2) | 2020.02.11 |
Linux Basic Command - 1 (0) | 2019.03.05 |
Linux Basic Command - 2 (0) | 2019.03.05 |
Linux File 권한 살펴보기 (0) | 2019.02.15 |
댓글