조건부 이진 연산자가 필요합니다.

조건부 이진 연산자가 필요합니다.
var="$(command1 -l '$var2' -c 'command2|grep -c "search"')"
if [[ var !=0 ]]; then
fi

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

답변1

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

활용쉘체크.

관련 정보