728x90
반응형
개요
- Shell에서 $0, $1, $2, $*, $@, $# 는 특별한 의미를 갖음
특수 변수 | 설명 |
$0 | Script를 실행시킬 때 프로그램의 이름이 포함된 첫 번째 문자열을 저장 |
$1, ...$N | 입력 값들이 순서대로 저장되며, 위치 매개변수(Positional Parameter)라고 표현 |
$* | 모든 위치 매개변수를 담고 있는 단일 문자열 |
$@ | $* 과 비슷하나 $@는 "$1", ..."$N"을 의미 |
$# | 위치 매개변수의 개수를 저장 |
$? | 쉘에서 최근 실행한 명령어의 종료 상태를 담은 변수 |
$$ | 쉘 스크립트의 프로세스 ID를 저장 |
$_ | 마지막 인수를 출력하는 변수를 저장 |
실습
$0, $1, $2, $*, $@, $#
- $0 : 첫번째 문자열이 저장되기 때문에 실행 명령어인 ./s_var.sh를 저장
./s_var.sh a b c d e - $1, $2 : 실행 명령어를 제외, 차례대로 위치에 따라 매개변수를 저장
./s_var.sh a b c d e - $* : 모든 위치 매개변수를 담은 문자열 저장
./s_var.sh a b c d e - $@ : $1 ~ $N 위치의 매개변수를 저장
./s_var.sh a b c d e - $# : 위치 매개변수 개수 5개를 저장
./s_var.sh a b c d e - $? : 최근 명령어의 종료 상태 저장
(0) -> 명령어 종료 상태 정상 - $$ : 스크립트의 PID 저장
' ' 구분자
- 띄어쓰기를 구분자로 위치 매개변수를 저장
- 변수 내 띄어쓰기가 필요한 경우 구분자인 ' ' 사용
./s_var.sh 'a b c' d e
- 띄어쓰기를 구분자로 'a b c'와 d 사이 띄어쓰기가 없어 a b cd로 $1에 저장됨
$?
- 최근 명령어의 종료 상태가 정상(0)일 경우
- 최근 명령어의 종료 상태가 비정상 일 경우
- true / false에 대한 명령어 상태 (0) / (1)
$_
- 마지막 위치 매개변수 저장
./s_var.sh a b c d
728x90
'*Programming > [ SS ] Shell Script' 카테고리의 다른 글
[SS - 06] 사직연산(expr) (0) | 2021.12.18 |
---|---|
[SS - 05] 사용자 입력 값 받기 (read) (0) | 2021.12.18 |
[SS - 04] 명령어 실행 (` `, $( )) (0) | 2021.12.18 |
[SS - 02] 변수 선언 ($) (0) | 2021.12.18 |
[SS - 01] Shell Script 생성 (#! /bin/bash) (0) | 2021.12.18 |