특수 매개변수

특수 매개변수는 bash 쉘이 Linux 또는 UNIX 시스템의 bash 스크립트에서 특별한 값을 처리하는 매개 변수입니다.
이 bash 스크립트 매개변수의 중요한 점은 참조만 가능하고 값을 지정할 수 없다는 것입니다.

문자

설명

$$

현재 쉘 스크립트의 PID

$?

프로그램의 종료값을 저장 (참과 거짓 반환코드 값)

$!

마지막 작업의 PID (종료되지 않은 방금 전에 실행된 프로세스의 PID)

$-

현재 옵션의 플래그
$_ 지난 명령의 마지막 인자로 설정된 특수 변수

 

위치 매개변수

위치 매개 변수는 쉘 프로그램 내의 변수입니다. 해당 값은 프로그램을 호출하는 명령 행에 지정된 인수에서 설정됩니다.

위치 매개 변수는 번호가 매겨지며 $1, $2, $3 등과 같이 앞에 "$"로 표시됩니다.

문자

설명

$0

실행된 쉘 스크립트의 이름

$*

위치 매개변수 (매개변수 인자의 모든 리스트)

$@

위치 매개변수 ($*과 똑같지만 각 매개변수는 quiting 된 문자열로 취급)

$숫자

쉘 스크립트에 넘겨진 숫자에 따른 인자의 값 ($1, $2, $3 ... ${10} -> 10부터는 괄호로 묶음)

$# 

쉘 스크립트에 넘겨진 인자의 총 갯수

 

와일드 카드

와일드 카드는 검색에서 문자 클래스를 대체 할 수있는 문자로 검색의 유연성과 효율성을 크게 향상시킵니다.

와일드 카드는 일반적으로 Linux 및 기타 Unix 계열 운영 체제의 쉘 명령에 사용됩니다.

문자

설명

*

매칭되는 모든 문자를 나타내는 특수 문자로 쉘에서 *는 0개 이상의 문자로 대체

[ ]

문자 범위 지정하는 특수 문자로 [] 괄호 안에 포함된 문자 중 하나를 나타냄

?

매칭되는 하나의 문자를 나타내는 특수 문자 (쉘에서 ?는 1개의 문자로 대체)

 

Quoting (인용) 관련

Quoting은 특정 문자나 단어가 쉘에 특수한 의미를 제거하는데 사용됩니다.

Quoting은 특수 문자에 대한 특수 처리를 비활성화하고 예약어가 인식되지 않도록하고, 매개 변수 확장을 방지하는 데 사용할 수 있습니다.

문자

설명

' '

뒤에 오는 모든 특수문자를 일반 문자로 인식 (모든 특수 문자 쿼팅)

" "

" " 사이에 들어있는 모든 특수 문자를 일반 문자로 인식하지만

단, $()와  ` `(명령어 대체 특수문자),  $ (변수 값 대체 특수문자), \ (quotation 특수문자) 등은 예외

\

특수문자 바로 앞에 사용되는데 해당 특수문자의 효과를 없애고 일반 문자처럼 처리 (뒤에 한 특수문자만 쿼팅)

` ` (역 따옴표)

역 따옴표는 따옴표 안에 있는 명령문의 실행하여 실행결과를 대입

 

괄호 비교

문자

설명

()    

함수 인수의 시작과 끝, 서브 쉘 작성 (스크립트의 다른 곳에서는 소괄호 안 서브 쉘에 들어있는 변수를 볼 수 없음), 배열 초기화

(()) 

산술 연산에 사용

{}    

명령 블록의 시작과 끝, 각종 변수의 존재범위도 연관됨,  매개변수 확장, 반복되는 문자열 목록 작성, 변수를 명확하게 식별

[]

배열 인덱스, 테스트 조건을 정의

[[]]

기본적으로 단일 대괄호와 동일한 기능을 수행하지만 bash 내장

 

입출력 리다이렉션

리디렉션을 통해 명령의 파일 핸들을 복제, 열기, 닫기, 다른 파일을 참조 할 수 있으며 명령을 읽고 쓰는 파일을 변경할 수 있습니다.

현재 쉘 실행 환경에서 파일 핸들을 수정하기 위해 리디렉션을 사용할 수도 있습니다.

문자

설명

<

입력 재지정

>

출력 재지정 (표준 출력 파일을 바꿈)

>>

출력 재지정 (파일의 내용을 추가하는 역할, 이어 쓰기)

 

다중 명령 관련

다중 명령을 사용할 경우 연산자에 따라서 출력을 다른 명령으로 보내거나 다음 명령어의 실행 여부를 결정할 수 있습니다.

문자

설명

|

명령과 명령을 연결 (왼쪽 명령의 실행결과를 오른쪽 명령어의 입력으로 전달)

;

명령과 명령을 연결 (연결된 명령을 왼쪽부터 차례로 실행)

&&

이전 명령이 정상 종료인 0의 값을 반환할 경우, 다음 명령 실행 (AND 연산) 

||

이전 명령이 비정상 종료인 1의 값을 반환할 경우, 다음 명령 실행 (OR 연산)

 

'Shell' 카테고리의 다른 글

vi 단축키 및 marking 사용법  (0) 2020.12.21
쉘 스크립트 기초  (0) 2020.03.25
리눅스 쉘과 명령어 기초  (0) 2020.03.23