https://www.tutorialspoint.com/unix/unix-special-variables.htm
특정 기능을 수행하기 위해 이미 예약된 변수들이 있다.
Variable | Description |
---|---|
$0 | 현재 스크립트 파일의 이름 |
$n | $1, $2, $3 ... 의 형태로 스크립트나 함수가 호출될 때 넣은 인수 |
$# | 스크립트나 함수가 호출될 때 넣은 인수의 개수 |
$* | 모든 인수를 합한 문자열 |
$@ | 모든 인수 |
$? | 마지막으로 실행된 명령의 exit 상태 |
$$ | 현재 쉘의 프로세스 ID 번호 |
$! | 마지막으로 백그라운드에서 실행된 명령의 프로세스 ID 번호 |
$*
는 모든 인수를 합해서 하나의 문자열로 가지고 있지만, $@
는 각각의 인수를 따로 가지고 있다.
#!/bin/bash
echo "\$*:"
for TOKEN in "$*"; do
echo "$TOKEN"
done
echo
echo "\$@:"
for TOKEN in "$@"; do
echo "$TOKEN"
done
exit 0
> ./test.sh aaa bbb ccc
$*:
aaa bbb ccc
$@:
aaa
bbb
ccc
$@
는 배열과 마찬가지로 동작한다.