$#
쉘에서 그것은 무엇을 의미합니까?
나는 이런 코드를 가지고있다
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
그건
스크립트를 호출하기 위한 매개변수의 수
스크립트에 설정된 매개변수 수
set -- foo bar
(함수 내에서 사용되는 경우) 함수를 호출하는 인수의 수(
set
여기에서도 작동할 수 있습니다).
이에 대해서는 bash 매뉴얼 페이지의 "특수 매개변수" 섹션에 설명되어 있습니다.