6.$ 매개변수(특수 변수)

출처

매개 변수

타입 설명
$# 전체 변수의 개수
$0 파일 이름
$1 전달 된 변수 순서대로 사용
$* 전체 파라미터

작성된 스크립트파일에 사용자가 전달하는 변수나 함수에 전달하는 변수를 매개변수라고 합니다.

전달된 매개변수는 공백으로 구분되어 전달합니다. 다음과 같이 사용하면 script.sh를 실행 할 때 a b c 세 개의 변수를 전달하게 됩니다.

# script.sh 파일에 a b c 변수 전달
$ script.sh a b c

이때 script.sh에서 해당 매개변수를 전달받을 때는 다음과 같이 사용합니다.

#!/bin/bash

## 스크립트 이름 - script.sh
file_name=$0      
## 전체 파라미터 - a b c
all_param=$*
## 파라미터 길이 - 3
param_length=$#

## 공백으로 구분된 파라미터
param1=$1  # a
param2=$2  # b
param3=$3  # c

특수 변수

타입 설명
$$ 현재 스크립트의 PID
$? 마지막으로 실행된 명령의 종료 인자. 0이면 정상 종료
$! 이전에 실행한 명령어의 PID

예제

# 현재 스크립트의 PID
# 스크립트 파일안에서 현재 실행중인 프로세스의 PID를 알고 싶을 때 
echo $$

# 마지막 실행의 종료 인자 
# 결과가 0이면 이전 실행한 프로세스가 정상 종료이지만, 다른 값이면 오류 발생
echo $?

# 이전 실행 명령어의 PID
# nohup 으로 실행한 이전 명령어의 PID를 기록해 둘 수 있음 
echo $! 

RANDOM 변수

RANDOM 변수를 이용하면 무작위의 정수를 출력 할 수 있습니다.

$ echo $RANDOM
7023
$ echo $RANDOM
15471
$ echo $RANDOM
22978
$ echo $RANDOM
25983

참고

links

social