쉘에서 $ #는 무엇을 의미합니까? -eq 0 ] then 무슨 $#뜻 인지

$#쉘에서 무엇을 의미합니까?

나는 다음과 같은 코드를 가지고있다

if [ $# -eq 0 ]
then

무슨 $#뜻 인지 이해하고 싶지만 Google 검색은 이런 종류의 것들을 검색하는 데 매우 나쁩니다.



답변

항상 쉘의 매뉴얼 페이지를 확인할 수 있습니다. man bash말한다 :

Special Parameters
   #      Expands to the number of positional parameters in decimal.

따라서 쉘 스크립트는 다음과 같은 코드로 몇 개의 매개 변수가 제공되는지 확인할 수 있습니다.

if [ "$#" -eq 0 ]; then
  echo "you did not pass any parameter"
fi


답변

사실은,

`$` refer to `value of` and
`#` refer to `number of / total number`

그래서 함께

`$#` refer to `The value of the total number of command line arguments passed.`

따라서 $#전달한 인수 / 매개 변수 수를 확인하고 예상치 못한 상황을 처리하는 데 사용할 수 있습니다.

마찬가지로, 우리는

`$1` for `value of 1st argument passed`
`$2` for 'value of 2nd argument passed`

기타


답변

그건

  1. 스크립트가 호출 된 매개 변수 수

  2. 스크립트 내에서 설정 한 매개 변수 수 set -- foo bar

  3. (함수 내에서 사용될 때) 함수가 호출 된 매개 변수의 수입니다 ( set여기에서도 작동합니다).

이에 대한 설명은 “특수 매개 변수”블록의 bash 매뉴얼 페이지에서 설명합니다.


답변