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