![동일한 결과를 제공하는 조건이 성공 또는 실패로 이어지는 이유는 무엇입니까? [복사]](https://linux55.com/image/159914/%EB%8F%99%EC%9D%BC%ED%95%9C%20%EA%B2%B0%EA%B3%BC%EB%A5%BC%20%EC%A0%9C%EA%B3%B5%ED%95%98%EB%8A%94%20%EC%A1%B0%EA%B1%B4%EC%9D%B4%20%EC%84%B1%EA%B3%B5%20%EB%98%90%EB%8A%94%20%EC%8B%A4%ED%8C%A8%EB%A1%9C%20%EC%9D%B4%EC%96%B4%EC%A7%80%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
이라는 스크립트가 있습니다 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은 $count
string과 동일하지 않으므로 0
비교는 항상 false입니다. 스크립트를 실행하여 sh -x
셸에서 실행되는 명령을 확인하세요. 또한 , =
not 을 사용해야 합니다 ==
. 후자는 표준이 아니며 모든 쉘에서 작동하지 않습니다.