관리 메뉴

NineTwo meet you

[리눅스 기초] 쉘 프로그래밍 본문

CS/리눅스

[리눅스 기초] 쉘 프로그래밍

NineTwo 2020. 7. 28. 22:20
반응형

쉘 스크립트

기본적으로 시스템 명령어와 프로그래밍 구문으로 이루어져 있다.

쉘 프로그래밍을 사용하면 반복적인 작업을 자동화할 수 있다.

 

프로그래밍 언어 쉘 스크립트 언어
소스파일 -> 컴파일 -> exe 실행 파일  소스파일 -> 인터프리터가 즉시 명령 수행
스크립트 언어에 비해 빠르고 강력함 인터프리터가 즉시 실행해 사용이 용이함
소스코드를 실행파일로 변환하기 위해 컴파일을 거쳐야 함 프로그래밍 언어에 비해 느리고,
강력한 기능 구현에는 한계 존재
C , ... shell script , python script , ...

쉘 스크립트 실행

sh

$sh 스크립트파일명

chmod

$chmod +x 스크립트파일명
$./스크립트파일명

변수의 종류

종류 설명
환경 변수 쉘 환경과 관련된 정보를 저장하는 변수로 쉘에 의해 정의되고 사용자가 변경가능한 변수
사용자 정의 변수 or 프로그램 변수 사용자가 정의해서 사용 가능한 변수
특수 변수 쉘의 수행을 돕는 변수로 쉘에 의해 설정되며 읽기 전용으로 사용
위치 매개 변수 쉘 스크립트 수행시 전달 받는 위치 아규먼트

환경변수

쉘 환경에 관련된 정보를 저장하는 변수로 로그인시 쉘에 의해 조기 설정되며 사용자에 의해 변경 가능하다.

변수명 설명
PATH 쉘이 명령어를 찾을 때 참조하는 디렉토리 경로
HOME 로그인시 사용자의 홈디렉토리
PS1 쉘 프롬프트
TERM 터미널 이름
SHELL 쉘 종류
LOGNAME 로그인 사용자 계정

사용자 정의 변수

변수명=값 형식으로 사용되며 변수명에는 문자, 숫자 , _(언더바) 으로 구성할 수 있다.

변수명의 첫 글자는 무조건 문자나 언더바여야 한다. 등호 앞뒤로 공백문자는 허용되지 않는다.

변수 값은 항상 문자열이며, 숫자를 포함하면 수치 문자열로 저장한다.


특수 변수

쉘의 프로세스 번호, 쉘 프로그램에서 아규먼트 전달 시 사용된다.

변수명 설명
$$ 현재 쉘의 PID
$? 실행된 마지막 명령의 종료 상태
$# 위치 매개 변수의 수 (아규먼트의 총 개수)
$- 쉘에 설정된 현재 플래그
$! 실행된 마지막 백그라운드 명령의 프로세스 넘버
$* $1부터 $n까지의 모든 매개 변수 목록
$@ $*과 동일 "$@"를 인용하면 매개 변수는 각각 인용
마지막 eval 호출에 대한 에러 메세지

위치 매개 변수

명령어의 옵션 또는 아규먼트와 같이 쉘 프로그래밍에서 사용하는 아규먼트다.

변수명 설명
$0 위치 매개 변수 0 : 항상 명령어
$1-$9 위치 매개 변수 1-9
반응형
Comments