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부터 시작하는 쉘에 대한 모든 인수를 포함하는 문자열입니다.
$@ 인용된 경우를 제외하고 위와 동일합니다.
이러한 특수 인수는 현재 쉘에 대한 데이터를 수집하는 데 매우 유용합니다.