728x90
반응형
스크립트
- 인터프리터라 불리는 다른 프로그램에 의해 실행되는 프로그램
- 자바 스크립트, Perl, 파이썬 등이 있음
- 최종사용자가 응용 프로그램의 동작을 사용자의 요구에 맞게 수행할 수 있도록 해줌
- 스크립트 언어라고도 하며 응용 프로그램과 독립하여 사용
셸 스크립트
- 셸이 실행하는 프로그램
- 유닉스 명령 + 셸이 제공하는 프로그램 구성 요소
- 셸 스크립트 파일 이름은 키워드나 에일리어스, 내장 명령과 같은 이름을 쓰지 않는 것이 바람직함
쉘 명령 실행 순서
- 에일리어스
- 키워드(if, while, until 등)
- 함수
- 내장 명령(cd, echo 등)
- 스크립트, 유틸리티 등 PATH 경로에 있는 실행 가능한 파일
스크립트
- exit [종료상태]
- 스크립트의 종료
- 쉘 스크립트 문서이 끝
- 기능: 종료 상태를 $? 변수에 저장
- 파일의 마지막 명령을 실행
- exit 문 실행
셸 스크립트 구성요소
- #!
- 파일의 가장 처음에 위치
- 스크립트를 실행할 프로그램 지정
- 각 셸마다 제공하는 스크립트 언어의 문법이 조금씩 다르므로, 이 스크립트를 실행할 셸을 지정해 주어야 올바로 실행됨
- 셸이 아닌, 다른 실행 가능한 명령을 지정해 주어도 됨
- #
- 주석 ( Comment )
- 프로그램에 대한 설명
- 행 전체, 또는 행의 일부를 주석으로 처리할 수 있음
- 셀 명령
- 셀이 실행할 수 있는 모든 명령어 실행 가능
- 여러 명령을 반복 수행해야 할 때 스크립트 파일로 저장하여 실행
- 셸 프로그램
- 각 셀이 제공하는 프로그램을 위한 구문
- 셀 변수, 인자처리, 각종 연산자, 제어문 등 포함
셀 프로그래밍 절차
- $ touch shell_script_practice.sh // 파일 생성
- $ vim shell_script_practice.sh // 파일 편집기로 파일 열기
- 스크립트 상단에 #!/bin/bash 추가
- 내용 입력 후 저장하고 빠져나옴
- $ chmod +x shell_script_practice.sh // 실행 권한 부여
- $ ./shell_script_practice.sh // 스크립트 파일 실행
쉘 변수
단일 변수
- 쉘 변수는 대소문자를 구분함
- =를 이용해서 선언하고 $ 를 이용해서 사용
- {} 는 parameter substitution 으로 $와 함께 감싼 부분에 변수를 대입
- "" 로 감싸서 사용하면 더 안전 ( 문자열에도 공백도 포함해서 값을 이용할 수 있기 때문에 )
- =는 공백 없이 붙혀서 써야한다.
- 지역 변수에는 local 을 붙힌다.
- 변수명 앞에 export를 붙혀주면 환경변수로 설정되어 자식 스크립트에서 사용 가능
- 환경 변수 사용 시, 예약 변수에 주의 필요
- 환경 변수 정의 : .bash_profil 에서 정의
변수 타입 지정
- Bash 변수는 타입을 구분하지 않고 기본적으로 문자열 문맥에 따라서 연산 처리
- declare , typeset 타입 지정 명령 지원
- 코멘트에 있는 다른 문법 사용을 추천
- 옵션
- -a
- 변수를 배열로 취급
- -f
- 함수명과 정의 목록 출력
- -F
- 함수명 목록만 출력
- -i
- 정수형 타입 변수 만들기
- -r
- 읽기 전용 변수 만들기
- -x
- 서브 쉘에 변수명을 전달
- -a
쉘변수
예약변수
- HOME
- 사용자의 홈 디렉터리
- PATH
- 실행 파일을 찾는 경로
- LANG
- 프로그램 사용 시 기본 지원되는 언어
- PWD
- 사용자의 현재 작업중인 디렉토리
- FUNCNAME
- 현재 함수 이름
- SECONDS
- 스크립트가 실행된 초 단위 시간
- SHLVL
- 쉘 레벨 ( 중첩된 깊이를 나타냄 )
- SHELL
- 로그인해서 사용하는 쉘
- PPID
- 부모 프로세스의 PID
- BASH
- BASH 실행 파일 경로
- BASH_ENV
- 스크립트 실행 시 BASH 시작 파일을 읽을 위치 변수
- BASH_VERSION
- 스크립트 실행시 BASH 시작 파일을 읽을 위치 변수
- BASH_VERSINFO
- 스크립트 실행시 BASH 시작 파일을 읽을 위치 변수
- MAIL
- 메일 보관 경로
- MAIL CHECK
- 메일 확인 시간
- OSTYPE
- 운영체제 종류
- TERM
- 로긴 터미널 타입
- HOSTNAME
- 호스트 이름
- HOSTTYPE
- 시스템 하드웨어 종류
- MACHTYPE
- 머신 종류
- LOGNAME
- 로그인 이름
- UID
- 로그인 이름
- EUID
- 사용자 ID
- USER
- 사용자의 이름
- USERNAME
- 사용자 이름
- GROUPS
- 사용자 그룹
- HISTFILE
- history 파일 경로
- HISTFILESIZE
- history 파일 크기
- HISTSIZE
- history 저장되는 개수
- HISTCONTROL
- 중복되는 명령에 대한 기록 유무
- DISPLAY
- 디스플레이 이름
- IFS
- 입력 필드 구분자 ( 기본값 : -빈칸 )
- VISUAL
- VUSUAL 편집기 이름
- EDITOR
- 기본 편집기 이름
- COLUMMS
- 현재 터미널이나 윈도우 터미널의 컬럼 수
- LINES
- 터미널의 라인 수
- LS_COLORS
- ls 명령의 색상 관련 옵션
- PS1
- 기본 프롬프트 변수
- PS2
- 보조 프롬프트 변수
- PS3
- 쉘 스크립트에서 select 사용시 프롬프트 변수
- PS4
- 쉘 스크립트 디버깅 모드의 프롬프트 변수
- TMOUT
- 0이면 제한이 없으며 time 시간 지정 시 지정한 시간 이후 로그아웃
728x90
반응형
'TEAM STUDY > LINUX' 카테고리의 다른 글
mkdir: cannot create directory 에러 (0) | 2021.12.18 |
---|---|
crontab 설정 기록 (0) | 2021.07.23 |
유닉스 쉘 익히기 (0) | 2021.01.16 |
유닉스 쉘의 기능과 종류 (0) | 2021.01.16 |
유닉스 쉘의 기능과 종류 (0) | 2021.01.16 |