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


25

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

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

if [ $# -eq 0 ]
then

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


3
문장 부호가있는 검색의 경우 symbolhound.com을 사용하고 싶습니다. 일반적으로 내가 필요한 것을 찾습니다.
Eric Andres


더 나은 참조 및 SEO : bang, number sign , sharp, U + 0023, & # 35 ;, comment sign 및 dollar!
Clément

답변:


37

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

@NoName 자신을 man포함하여 거의 모든 것을 할 수 있습니다 man. 또한 apropos시간을 보내십시오.
CVn

@NoName 또한 GNU 툴 (리눅스 등)과 함께 OS를 사용할 info때 매뉴얼 페이지 또는 패키지에 다음과 같은 추가 정보 (매우 상세하고 구획화 된)를 사용하는 경우도 있습니다.
Olivier Dulac

12

사실은,

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

기타


8

그건

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

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

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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.