English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Shell 스크립트를 실행할 때 매개변수를 전달할 수 있으며, 스크립트 내 매개변수 가져오는 형식은 다음과 같습니다:$n.n 하나의 숫자를 나타냅니다:1 스크립트에 실행할 첫 번째 매개변수를 설정합니다:2 스크립트에 실행할 두 번째 매개변수를 설정하고 이와 같이 계속됩니다...
다음 예제에서는 스크립트에 세 가지 매개변수를 전달하고 각각을 출력하겠습니다: $0 실행할 파일 이름(파일 경로 포함):
#!/bin/bash # author:기본 튜토리얼 # url:ko.oldtoolbag.com echo "Shell 매개변수 전달 예제!"; echo "실행할 파일 이름: $0"; echo "첫 번째 매개변수: $1";1"; echo "두 번째 매개변수는: $2"; echo "세 번째 매개변수는: $3";
스크립트에 실행 권한을 설정하고 실행하면 다음과 같은 결과가 출력됩니다:
$ chmod +x test.sh $ ./test.sh 1 2 3 Shell 매개변수 전달 예제! 실행할 파일 이름: ./test.sh 첫 번째 매개변수:1 두 번째 매개변수는 다음과 같습니다:2 세 번째 매개변수는 다음과 같습니다:3
또한, 매개변수 처리를 위해 특수 문자가 몇 가지 있습니다:
매개변수 처리 | 설명 |
---|---|
$# | 스크립트에 전달된 매개변수 개수 |
$* | 모든 매개변수를 전달받은 단일 문자열로 출력합니다. 와 같이*「"」로 둘러싸인 경우, "$1 $2 … $n" 형식으로 모든 매개변수를 출력합니다. |
$$ | 스크립트가 실행하는 현재 프로세스 ID 번호 |
$! | 뒤에서 가동되는 마지막 프로세스의 ID 번호 |
$@ | 와 $*와 동일하지만, 사용 시 쿼롯을 추가하고 쿼롯 내에서 각 매개변수를 반환합니다。 예를 들어 "$@"이 쿼롯으로 포함된 경우, "$"를 사용하여 각 매개변수를 쿼롯으로 포함하여 사용하며, 쿼롯 내에서 각 매개변수를 반환합니다。1" "$2" … "$n" 형식으로 모든 매개변수를 출력합니다。 |
$- | Shell이 사용하는 현재 옵션을 표시합니다.set 명령어동일한 기능입니다. |
$? | 최종 명령어의 종료 상태를 표시합니다. 0은 오류가 없음을 의미하며, 다른 어떤 값도 오류를 의미합니다。 |
#!/bin/bash # author:기본 튜토리얼 # url:ko.oldtoolbag.com echo "Shell 매개변수 전달 예제!"; echo "첫 번째 매개변수: $1";1"; echo "매개변수 개수: $#"; echo "전달된 매개변수를 문자열로 표시합니다:$"*";
스크립트 실행하고 결과를 다음과 같이 출력합니다:
$ chmod +x test.sh $ ./test.sh 1 2 3 Shell 매개변수 전달 예제! 첫 번째 매개변수:1 매개변수 개수:3 전달된 매개변수를 문자열로 표시합니다:1 2 3
$* 와 $@의 차이점:
동일점: 모든 매개변수를 참조합니다.
차이점: 트윈 쿼롯에서만 나타납니다. 스크립트 실행 시 세 개의 매개변수를 작성한 경우 1、2、3, * "는 "1 2 3"(한 개의 매개변수가 전달되었습니다),"@"는 "1" "2" "3"(세 개의 매개변수가 전달되었습니다)。
#!/bin/bash # author:기본 튜토리얼 # url:ko.oldtoolbag.com echo "-- \$* 演示 ---" for i in "$*"; do echo $i done echo "-- \$@ 演示 ---" for i in "$@"; do echo $i done
스크립트 실행하고 결과를 다음과 같이 출력합니다:
$ chmod +x test.sh $ ./test.sh 1 2 3 -- $* 演示 --- 1 2 3 -- $@ 演示 --- 1 2 3