예상되는 조건부 이진 연산자

예상되는 조건부 이진 연산자
var="$(command1 -l '$var2' -c 'command2|grep -c "search"')"
if [[ var !=0 ]]; then
fi

"조건부 이진 연산자가 필요합니다"라는 메시지가 나타나는 이유는 무엇입니까? 나는 검색했다. [[]]는 테스트 문인 것 같은데 왜 작동하지 않나요?

답변1

  1. $당신이 그것을 호출하면, 당신이 쓴 대로 var 앞에서 잃습니다. 실제로는 입니다 var.
  2. 고려하다가능한 취약점[[ ... ]](( ... ))제어할 수 없는 변수와 함께 사용 되거나 사용되는 스크립트입니다. 귀하의 경우에는 를 사용하는 것이 더 나을 수도 있습니다 [ "$var" -ne 0 ].
  3. !=와 사이에 공백이 없습니다 0(이것이 오류의 원인입니다!).
  4. !=문자열 비교 연산자, 귀하의 예에서는 작동할 수 있지만 이를 사용하여 -ne정수를 비교하려고 합니다.

사용주택 검사.

관련 정보