쉘 프로그래밍 시 사용되는 쉘 기능
Exit Status
- 종료 상태
- 명령어를 실행 하였을 때 명령의 실행결과를 숫자로 표기
- 일반적으로 0이 정상 종료상태를 의미(반드시 그런것은 아님)
- $? : 명령어 실행 시 종료 상태를 저장, 새로운 명령 실행시 덮어 씀
조건부 실행
- 앞 명령의 실행 결과에 따라 뒤 명령의 실행여부를 결정
- && : 앞 명령이 정상적으로 실행될 경우 뒤 명령을 실행, 앞 명령이 정상적으로 실행되지 않을 경우, 뒤 명령을 실행하지 않음
- || : 앞 명령이 정상적으로 실행되지 않을 경우 뒤 명령을 실행,앞 명령이 정상적으로 실행될 경우, 뒤 명령을 실행하지 않음
변수
Variable, 변경 가능한 데이터가 저장되는 공간
쉘 프로그래밍에서는 변수는 특정 유형이 없음
쉘 내에서 자유롭게 선언 및 사용이 가능
변수이름=변수값
변수이름 = $변수이름
ex) ES=$? //현재 종료상태에 저장된 값을 ES 변수에 저장
모든 입력값을 문자열로 인식
특수한 용도의 변수
$$ : 현재 실행중인 쉘의 PID
$? : 이전 작업의 Exit Status
$! : 백그라운드로 실행된 프로세스의PID
스크립트 내에서 선언된 변수는 스크립트 내에서만 유효함(지역변수)
전역변수 : env로 조회되는 변수는 쉘 내에서 호출한 쉘에서도 접근 가능
export [변수명] : 생성되어 있는 지역변수를 전역변수로 변경
export [변수명]=[값] : 변수를 전역변수로 선언
산술연산
- expr : 산술연산 수식을 인자로 받아서 처리, 소수점 처리 불가능
ex) expr 10 + 3
bc : 산술연산 수식을 입력으로 받아서 처리, 소수점 처리 가능(scale)
ex) echo "scale=3;10/3" | bc
let
위치 매개변수 (Positional Parameter)
- 명령어 내에서의 위치(인자, Argument)
- 위치 매개변수의 유형
- $0 : 현재 실행중인 쉘 스크립트의 이름
- $1~ : 현재 스크립트 실행 시 사용된 인자
- $# : 전체 위치매개변수의 갯수
- $*, $@ : 위치매개변수 전체
- 가장 마지막 위치 매개변수 접근
- $# : 위치매개변수의 갯수 = 마지막 위치 매개변수의 위치
- $$# : $$가 해석되어 사용 불가
- \$$# : \에 의해 앞 $가 사용되지 않아 뒤 $#가 인식되지만 \에 의해 일반문자로 인식되어 지장된 위치의 위치매개변수를 가져올 수 없음
- eval echo \$$# : eval에 의해 뒤쪽 $ 기호가 다시 인식되어 마지막 매개변수의 값을 가져올 수 있음
'클라우드 아키텍트 양성과정' 카테고리의 다른 글
쉘 프로그래밍 sed(Stream Editor) (0) | 2021.05.12 |
---|---|
쉘 프로그래밍 grep과 정규화 표현식 (0) | 2021.05.12 |
쉘 프로그래밍의 이해 (0) | 2021.05.12 |
리눅스(CentOS) 파일기반 공유 스토리지 (0) | 2021.05.12 |
리눅스(CentOS) SSH(Secure SHell) (0) | 2021.05.12 |
댓글