$#
쉘에서 무엇을 의미합니까?
나는 다음과 같은 코드를 가지고있다
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`
기타
답변
그건
-
스크립트가 호출 된 매개 변수 수
-
스크립트 내에서 설정 한 매개 변수 수
set -- foo bar
-
(함수 내에서 사용될 때) 함수가 호출 된 매개 변수의 수입니다 (
set
여기에서도 작동합니다).
이에 대한 설명은 “특수 매개 변수”블록의 bash 매뉴얼 페이지에서 설명합니다.