이라는 스크립트가 있습니다 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 을 사용해야 합니다 ==
. 후자는 표준이 아니며 모든 쉘에서 작동하지 않습니다.