동일한 결과를 제공하는 조건이 성공 또는 실패로 이어지는 이유는 무엇입니까? [복사]

동일한 결과를 제공하는 조건이 성공 또는 실패로 이어지는 이유는 무엇입니까? [복사]

이라는 스크립트가 있습니다 temp.sh. 다음과 같은 다른 스크립트에서 실행하고 있습니다.

sh temp.sh | tr '|' '\n' > sel-employee
count=`wc -l sel-employee`

if [ '$count' == 0 ] ; then 
echo "ERROR"
else
echo "SUCCESS"
fi

이 스크립트를 실행할 때 sel-employee 파일에 0개 이상의 행이 있으면 두 경우 모두 출력이 성공합니다. 왜 그런지 이해가 안 되나요?

답변1

if [ '$count' == 0 ] ; then 

변수가 count다음 위치에 있으므로 확장되지 않습니다.하나의인용 부호. 큰따옴표 사용: "$count".string은 $countstring과 동일하지 않으므로 0비교는 항상 false입니다. 스크립트를 실행하여 sh -x셸에서 실행되는 명령을 확인하세요. 또한 , =not 을 사용해야 합니다 ==. 후자는 표준이 아니며 모든 쉘에서 작동하지 않습니다.

관련 정보