스크립트는 test.sh
.
#!/bin/sh
if cmp -s file.a file.b; then
echo diff
else
echo same
fi
종료 코드를 확인할 때 다음 cmp -s
이 표시됩니다.
언제 file.a
와 file.b
다른지.
cmp -s file.a file.b
echo $?
1
언제 file.a
와 file.b
동일합니다.
cmp -s file.a file.b
echo $?
0
그렇다면 조건문이 그 반대인 것처럼 보이는 이유는 무엇입니까?
언제 file.a
와 file.b
다른지.
./test.sh
same
언제 file.a
와 file.b
동일합니다.
./test.sh
diff
이런 일이 일어나는 것을 본 것은 이번이 처음이 아닙니다. 해당 명령문이 종료 코드를 해석하는 방법을 오해하고 있는 것 같습니다 if
. 아니면 전혀 종료 코드가 아닐 수도 있습니다.