diff의 오류 종료 값은 무엇입니까?
온 diff
사람 페이지 나는이 종료 값을 발견했습니다 :
0 No differences were found.
1 Differences were found.
>1 An error occurred.
다른 오류에 대해 1 이상의 다른 종료 값이 있습니까?
그것은 당신의 diff
명령 에 달려 있습니다 . Mine (GNU diffutils 3.0) 말한다 :
종료 상태는
0
차이가 없음을1
의미하고 일부 차이가 있음을2
의미하며 문제 가 있음을 의미합니다. 일반적으로는, 다른 바이너리 파일 문제로 간주하지만, 이것은 사용에 의해 변경 될 수 있습니다-a
또는--text
옵션이나-q
또는--brief
옵션을 선택합니다.
사용하는 diff 버전에 따라 다른 오류 코드가 있거나 없을 수 있습니다. 올바르게 기억하면 표준 BSD diff는 항상 종료 코드 0, 1 또는 2를 반환했습니다.
그러나 맨 페이지는 diff가 할 수있는 모든 것을 매핑하는 것이 아니라 diff 명령을 사용하는 데 사용할 수있는 문서입니다. 쉘 스크립트에서 파일이 일치하는지 (exit = 0) 또는 일치하지 않는지 (exit = 1) 알고 싶습니다. 그러나 셸 스크립트에서 diff 명령 자체가 작동하지 않았는지 알고 싶습니다.
diff $file1 file2 > /dev/null 2>&1
error=$?
if [ $error -eq 0 ]
then
echo "$file1 and $file2 are the same file"
elif [ $error -eq 1 ]
then
echo "$file1 and $file2 differ"
else
echo "There was something wrong with the diff command"
fi
2가 diff 명령이 실패했음을 의미하지만 새로운 버전의 diff 명령이 읽을 수없는 파일 (exit = 2)과 누락 된 파일 (exit = 3)을 구분했다고 가정 해보십시오. 이제 이전 버전의 diff 명령에서 다음을 수행했지만 $file2
존재하지 않았다고 상상해보십시오 .
diff $file1 file2 > /dev/null 2>&1
error=$?
if [ $error -eq 2 ]
then
echo "There was something wrong with the diff command"
elif [ $error -eq 1 ]
then
echo "$file1 and $file2 differ"
else
echo "$file1 and $file2 are the same file"
fi
위 코드에서 오류 코드 2와 1을 확인했지만 3은 확인하지 않았습니다. 따라서 누락 된 파일을 감지하는 대신 파일이 일치한다고 가정합니다.
맨 페이지는 향후 OS 업그레이드로 인해 대부분의 셸 스크립트가 갑자기 실패하지 않도록하려고합니다. 별도 있었다 이유입니다 awk
및 nawk
명령과 별도의 grep
및 egrep
명령.
* @ chus의 댓글에 따라 업데이트되었습니다.
제 경우에는 diff가 127을 반환하고이를 검색하여 tldp.org "특별한 의미가있는 종료 코드"에서 찾습니다.
127 "command not found"illegal_command $ PATH 또는 오타에 문제가있을 수 있습니다.
diff에 잘못된 경로를 사용했습니다. :)
글꼴 : tldp.org/LDP/abs/html/exitcodes.html
참조 URL : https://stackoverflow.com/questions/6971284/what-are-the-error-exit-values-for-diff
'programing' 카테고리의 다른 글
Git은 100,000 개의 개체에 대해 정말 느립니다. (0) | 2021.01.15 |
---|---|
Java XPath (Apache JAXP 구현) 성능 (0) | 2021.01.15 |
similar_text는 어떻게 작동합니까? (0) | 2021.01.15 |
pdb.set_trace ()로 인해 nosetest가 중지되고 디버거로 떨어지지 않습니다. (0) | 2021.01.14 |
Mac OSX의 Dock에 Java Coffee Cup 아이콘이 표시되지 않도록 중지 (0) | 2021.01.14 |