예상 피연산자: 구문 오류(비교문)

예상 피연산자: 구문 오류(비교문)

wget 결과를 비교할 때 다음 오류가 발생합니다.

mpa=$(wget http://xxxxxxxx/api/pages/ZZZZ-YYYY -q -O -)
  echo $mpa
if (($mpa = "{"'"'name'"'":"'"'ZZZZ-YYYY'"','"'active'"':true}"" )); then
    echo "CRITICAL: Up."
else
    echo "OK: Down."
fi

오류가 발생했습니다:

./mpa: line 25: ((: {"name":"ZZZZ-YYYY","active":true} = {"name":"ZZZZ-YYYY","active":true} : syntax error: operand expected (error token is "{"name":"ZZZZ-YYYY","active":true} = {"name":"ZZZZ-YYYY","active":true} ")
OK: Down

오류가 어디에 있는지 잘 모르겠습니다.

에코를 시도할 때:

mpa="{"'"'name'"'":"'"'ZZZZ-YYYY'"','"'active'"':true}""

결과는 좋습니다:

echo $mpa
{"name":"ZZZZ-YYYY","active":true}

그러나 if 문에서 비교할 때 이 오류가 표시됩니다.

답변1

귀하의 if진술은 문법적 오류입니다. 문자열 비교를 수행하는 올바른 방법은 다음과 같습니다.

if [[ "testcase" == "$variable" ]]; then
    do_stuff
else
    do_other_stuff
fi

관련 정보