쉘 스크립트에 전달된 인수 수가 정확히 2인지 확인하는 방법은 무엇입니까?

쉘 스크립트에 전달된 인수 수가 정확히 2인지 확인하는 방법은 무엇입니까?

쉘 스크립트에 전달된 매개변수 수를 확인하려면 쉘 스크립트에서 다음을 수행해야 한다는 것을 어느 정도 알고 있습니다.실시예 1

if [ "$#" -ne 2 ]; then
   do something;
fi

그런데 실행시 쉘 스크립트의 이름이 인수의 일부로 간주되어 Python 스크립트가 포함되어 있는지 조금 혼란스럽고 궁금합니다 sys.argv.

터미널의 예는 다음과 같습니다. 실시예 2

./script.sh $1 $2

이 경우에는실시예 2실제로 전달된 것으로 간주되는 인수 수는 몇 개입니까?실시예 1그렇지 않으면 루프.

답변1

스크립트 이름은 위치 매개변수의 일부로 간주되지 않습니다. 이것은 의미한다

somescript arg1 arg2

즉 , 과 $1로 설정됩니다 .arg1$2arg2$#2

스크립트의 이름은 에서 제공되지만 $0이를 $0특별하게 만드는 것은아니요배열에는 $@길이 $#(요소 수)가 포함됩니다 $@.

관련 정보