-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"이 여기서 무엇을하는지 확실하지 않습니다.이 셸 스크립트는 어떤 기능을합니까?
http://explainshell.com/은 쉘의 단일 행에 대한 설명을 제공합니다. '[[-z $ INV_NAME]]'또는'[[-n $ PRO_NAME]]'을 사용할 수 있습니다. –
BTW,'true'와'false' 문자열을 조건으로 사용하는 것은 매우 나쁜 습관입니다. 이렇게하는 코드는 전형적으로'$ $ FROM_PROJECT; then ... '을 실행하여 세미 임의 코드 실행을 수행합니다 (변수의 내용에 임의의 값을 지정하여 보안 검토에서 확인해야하는 항목을 추가하는 경우). 대신, 빈/비어 있지 않은 상태를 사용하여 부울 결정을 내리십시오. –
('some_value'가 양의 정수 값을 보유하고있는 경우 if ((some_value))'가 true가되고, 양수가 들어있는 변수의 이름이 'if (some_value) 정수 값). –