var="$(command1 -l '$var2' -c 'command2|grep -c "search"')"
if [[ var !=0 ]]; then
fi
"조건부 이진 연산자가 필요합니다"라는 메시지가 나타나는 이유는 무엇입니까? 나는 검색했다. [[]]는 테스트 문인 것 같은데 왜 작동하지 않나요?
답변1
$
당신이 그것을 호출하면, 당신이 쓴 대로 var 앞에서 잃습니다. 실제로는 입니다var
.- 고려하다가능한 취약점
[[ ... ]]
(( ... ))
제어할 수 없는 변수와 함께 사용 되거나 사용되는 스크립트입니다. 귀하의 경우에는 를 사용하는 것이 더 나을 수도 있습니다[ "$var" -ne 0 ]
. !=
와 사이에 공백이 없습니다0
(이것이 오류의 원인입니다!).!=
는문자열 비교 연산자, 귀하의 예에서는 작동할 수 있지만 이를 사용하여-ne
정수를 비교하려고 합니다.
사용주택 검사.