답변:
$@
함수 호출시 모든 파라미터 변수가 팽창 정도로 사용
function foo()
{
echo "$@"
}
foo 1 2 3
표시됩니다 1 2 3
. 함수 내에서 사용되지 않으면 스크립트를 호출 할 때 사용되는 모든 매개 변수를 지정합니다. 자세한 내용은 bash 매뉴얼 페이지 를 참조하십시오.
$ @는 bash에서 두 개의 "위치 매개 변수"표현 중 하나이며 다른 하나는 $ *입니다.
$ @와 $ *는 모두 함수 나 스크립트에 전달 된 모든 매개 변수를 나타내는 내부 bash 변수입니다. 한 가지 중요한 차이점 은 $ @에는 각 매개 변수가 개별 인용 문자열로 있고 $ *에는 모든 매개 변수가 단일 문자열로 있습니다. 그 차이점은 다음 코드에 나와 있습니다.
foo() {
while [ "$1" != "" ]; do
echo $1
shift
done
}
dollar_at () {
foo "$@"
}
dollar_star () {
foo "$*"
}
echo "Using \$@"
dollar_at a b c
echo "Using \$*"
dollar_star a b c
산출:
Using $@
a
b
c
Using $*
a b c
$ *로 호출하면 정확히 하나의 인수가 foo ()에 전달되지만 $ @로 세 개의 인수가 foo ()에 전달됩니다.
추가 정보 : http://tldp.org/LDP/abs/html/internalvariables.html#APPREF
$1
,$2
관계없이, 어쨌든 등$@
.