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

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

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

나는 이런 코드를 가지고있다

if [ $# -eq 0 ]
then

이것이 무엇을 의미하는지 이해하고 싶지만 $#Google은 이런 종류의 검색을 제대로 수행하지 못합니다.

답변1

언제든지 쉘의 매뉴얼 페이지를 확인할 수 있습니다. 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

답변2

실제로,

`$` 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`

등.

답변3

그건

  1. 스크립트를 호출하기 위한 매개변수의 수

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

  3. (함수 내에서 사용되는 경우) 함수를 호출하는 인수의 수( set여기에서도 작동할 수 있습니다).

이에 대해서는 bash 매뉴얼 페이지의 "특수 매개변수" 섹션에 설명되어 있습니다.

관련 정보