Bash에서 최신 오류 코드의 전체 목록을 찾는 데 문제가 있습니다. 예를 들어:
$ udevadm info /dev/sdx; echo Exit code $?
Unknown device, --name=, --path=, or absolute path in /dev/ or /sys expected.
Exit code 4
그러한 종료 코드를 어떻게 찾아야 합니까?
답변1
일부 종료 코드가 있습니다.특별한 의미를 예약하세요:
종료 코드 번호 의미 1 일반적인 오류 개요 2 쉘 내장 기능의 남용(Bash 문서에 따름) 126 호출된 명령을 실행할 수 없습니다. 127 "명령을 찾을 수 없습니다." 128+n 치명적인 오류 신호 "n" 130 Ctrl-C에 의해 스크립트가 종료되었습니다. 255* 종료 상태가 범위를 벗어났습니다.
개발자의 경우 125 미만의 모든 것은 공정한 게임이며 실제로 예측할 수 있는 이유는 다음과 같습니다.그의 답변에 l0b0이 언급되었습니다.man
, 애플리케이션의 페이지나 소스 코드를 읽어 코드의 의미를 파악합니다(실제로 문서화된 경우).
답변2
너무 길어요.종료 코드는 응용 프로그램마다 다릅니다.
몇 가지 느슨한 규칙이 있습니다. POSIX 셸에서 (예를 들어 ) false
접두사가 붙은 모든 성공은 종료 코드 1을 반환하지만 개발자는 원하는 목적에 따라 0에서 255 사이의 종료 코드를 사용할 수 있습니다. 궁극적으로 그것이 무엇을 의미하는지 알기 위해서는 문서(최상의 경우)나 코드(최악의 경우)를 살펴봐야 합니다. 페이지 종료 코드가 있는 프로그램은 일반적으로 (예: GNU 도구)라는 섹션에 나열됩니다.!
! true
man
EXIT STATUS
find
몇 가지 대중적인 의미가 여기에 나열되어 있습니다 /usr/include/sysexits.h
. 가능한 경우 해당 의미를 사용합니다. ~처럼@AnsgarEsztermann이 지적했습니다., 이는 이를 사용하기로 선택한 사람들(주로 C/C++ 개발자)을 제외하고 Bash 참조 또는 심지어 애플리케이션 참조가 아닙니다.ABS에 따르면).