출처
매개 변수
타입 | 설명 |
---|---|
$# | 전체 변수의 개수 |
$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