2017-02-06 1 views
-2
FROM_PROJECT=false 
if [[ -z $INV_NAME ]]; then 
    if [[ -z $PRO_NAME ]]; then 
      echo "error: variable not set" >&2 
      exit 1 
    elif [[ -z $INV_FILE ]]; then 
      echo "error: variable INV not set" >&2 
      exit 1 
    fi 
    FROM_PRO=true 
elif [[ -n $PRO_NAME ]] || [[ -n $INV_FILE ]]; then 
    echo "error: variable INV_NAME is not compatible with PRO_NAME and    INVENTORY_FILE" >&2 
    exit 1 

"-z"와 "-n"이 여기서 무엇을하는지 확실하지 않습니다.이 셸 스크립트는 어떤 기능을합니까?

+0

http://explainshell.com/은 쉘의 단일 행에 대한 설명을 제공합니다. '[[-z $ INV_NAME]]'또는'[[-n $ PRO_NAME]]'을 사용할 수 있습니다. –

+0

BTW,'true'와'false' 문자열을 조건으로 사용하는 것은 매우 나쁜 습관입니다. 이렇게하는 코드는 전형적으로'$ $ FROM_PROJECT; then ... '을 실행하여 세미 임의 코드 실행을 수행합니다 (변수의 내용에 임의의 값을 지정하여 보안 검토에서 확인해야하는 항목을 추가하는 경우). 대신, 빈/비어 있지 않은 상태를 사용하여 부울 결정을 내리십시오. –

+0

('some_value'가 양의 정수 값을 보유하고있는 경우 if ((some_value))'가 true가되고, 양수가 들어있는 변수의 이름이 'if (some_value) 정수 값). –

답변

2

-z은 문자열이 비어 있는지 테스트하는 데 사용됩니다.

-n은 그 반대입니다.

관련 문제