Shell
쉘 - $#, $*, $@
필유아사
2022. 1. 16. 01:10
shell 에서 사용되는 $#, $*, $@, $# 에 대해 알아본다.
$0 : Script를 실행시킬 때 프로그램의 이름이 첫 번째 문자열에 저장
$1, ...$N : argument들이 순서대로 저장
$* : 모든 파라미터들로 구성된 단일 문자열
$@ : 파라미터들을 각각 별도의 구분된 문자로 취급
$# : 위치 매개변수의 갯수가 저장
예제 1) $#
아래와 같은 스크립트 코드가 있다. 파일명은 script1.sh 로 했다.
#!/bin/sh
echo "\$# 예제"
echo " 프로그램명 : $0"
echo " 첫번째 파라미터 : $1"
echo " 첫번째 파라미터 : $2"
echo " 첫번째 파라미터 : $3"
echo "파라미터 갯수 : $#"
이 스크립트를 실행시켜보자.
$ sh script1.sh arg1 arg2 arg3
결과는 아래와 같다. 즉 파라미터가 4개임을 출력한다.
$# 예제
프로그램명 : script1.sh
첫번째 파라미터 : arg1
첫번째 파라미터 : arg2
첫번째 파라미터 : arg3
파라미터 갯수 : 3
예제 2) $@와 $* 차이
아래와 같은 스크립트 코드가 있다. 파일명은 script2.sh 로 했다.
#!/bin/sh
echo "\$@ 예제"
echo "----------"
for param in "$@"
do
echo $param,
done
echo "\$* 예제"
echo "----------"
for param in "$*"
do
echo $param,
done
이 스크립트를 실행시켜보자.
$ sh script2.sh A B C
결과는 아래와 같다.
$ sh script2.sh A B C
$@ 예제
----------
A,
B,
C,
$* 예제
----------
A B C,
예제처럼 $@는 N개의 배열처럼 동작하고, $*는 모든 parameter를 한개의 스트링으로 인식한다. 경우에 맞도록 사용하면 되겠다.