2014-04-11 3 views
2

내가이있는 스크립트가 있습니다

login { 
    # checking parameters -> if not ok print error and exit script 
    if [ $# -lt 2 ] || [ $1 == '' ] || [ $2 == '' ]; then 
     echo "Please check the needed options (username and password)" 
     echo "" 
     echo "For further Information see Section 13" 
     echo "" 
     echo "Press any key to exit" 
     read 
     exit 
    fi 

    } # /login 

을하지만 난 정말 $#이 세 번째 줄에 무엇을 의미하는지 잘 모릅니다.

+4

스크립트에 전달 된 매개 변수의 수입니다. – devnull

+1

이것은 여러 번 묻고 답했습니다. – devnull

+0

@devnull이 함수는 다음과 같이 호출되기 때문에 의미가 있습니다 :'''login $ USER $ PASS''' Thanks! – user3084450

답변

4

파운드 기호를 "명령 줄 인수를 검출"에 대한 검색 물건을 계산 읽을 수 있습니다. 그냥 $#의 경우

  1. , 그것은 $1, $2, $3 같은 위치 매개 변수의 수입니다. $0을 포함하지 않습니다.
  2. ${#var} 인 경우 매개 변수를 확장 한 문자 수입니다. (문자열 길이)
  3. ${#var[@]} 인 경우 배열의 요소 수입니다. bash 배열은 드문 드문 있기 때문에, 이것은 마지막 요소의 색인에 1을 더한 다른 일 수 있습니다.
1

전달 된 인수의 수입니다.

당신은 here,