애플리케이션의 종료 코드를 찾는 방법은 무엇입니까?

애플리케이션의 종료 코드를 찾는 방법은 무엇입니까?

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 도구)라는 섹션에 나열됩니다.!! truemanEXIT STATUSfind

몇 가지 대중적인 의미가 여기에 나열되어 있습니다 /usr/include/sysexits.h. 가능한 경우 해당 의미를 사용합니다. ~처럼@AnsgarEsztermann이 지적했습니다., 이는 이를 사용하기로 선택한 사람들(주로 C/C++ 개발자)을 제외하고 Bash 참조 또는 심지어 애플리케이션 참조가 아닙니다.ABS에 따르면).

관련 정보