쉘 스크립트에 전달된 매개변수 수를 확인하려면 쉘 스크립트에서 다음을 수행해야 한다는 것을 어느 정도 알고 있습니다.실시예 1
if [ "$#" -ne 2 ]; then
do something;
fi
그런데 실행시 쉘 스크립트의 이름이 인수의 일부로 간주되어 Python 스크립트가 포함되어 있는지 조금 혼란스럽고 궁금합니다 sys.argv
.
터미널의 예는 다음과 같습니다. 실시예 2
./script.sh $1 $2
이 경우에는실시예 2실제로 전달된 것으로 간주되는 인수 수는 몇 개입니까?실시예 1그렇지 않으면 루프.
답변1
스크립트 이름은 위치 매개변수의 일부로 간주되지 않습니다. 이것은 의미한다
somescript arg1 arg2
즉 , 과 $1
로 설정됩니다 .arg1
$2
arg2
$#
2
스크립트의 이름은 에서 제공되지만 $0
이를 $0
특별하게 만드는 것은아니요배열에는 $@
길이 $#
(요소 수)가 포함됩니다 $@
.