bash 함수에 실제로 전달되는 인수 수를 어떻게 확인할 수 있나요?

bash 함수에 실제로 전달되는 인수 수를 어떻게 확인할 수 있나요?

bash 함수가 주어지면:

function f1 {
  echo "The function f1 is being called with ??? argument(s)."
  }

그리고 두 가지 호출:

f1 arg1
f1 arg1 arg2

전달된 인수 수를 어떻게 얻을 수 있나요? 원하는 출력:

The function f1 is being called with 1 argument(s).    
The function f1 is being called with 2 argument(s).

답변1

당신이 사용할 수있는

$#

man bash더 많은 bash 팁을 보려면 참조하세요

답변2

특수 인수 사용

$#

이 쉘 호출에 제공된 위치 인수의 수를 반환합니다.

에서 man bash...

$1 - $9 이 변수는 위치 매개변수입니다.

$0 현재 실행 중인 명령의 이름입니다.

$# 이 쉘 호출에 제공된 위치 인수의 수.

$? 실행된 마지막 명령의 종료 상태는 10진수 문자열로 제공됩니다. 명령이 성공적으로 완료되면 종료 상태 0(영)을 반환하고, 그렇지 않으면 0이 아닌 종료 상태를 반환합니다.

$$ 이 쉘의 프로세스 번호 - 파일 이름을 고유하게 만들기 위해 포함하는 데 유용합니다.

$! 백그라운드에서 실행되는 마지막 명령의 프로세스 ID입니다.

$- 이 쉘 호출에 제공된 현재 옵션입니다.

$* $1부터 시작하는 쉘에 대한 모든 인수를 포함하는 문자열입니다.

$@ 인용된 경우를 제외하고 위와 동일합니다.

이러한 특수 인수는 현재 쉘에 대한 데이터를 수집하는 데 매우 유용합니다.

관련 정보