출구 99가 무엇인지, 출구 99를 사용하는 이유와 그 중요성을 알고 싶습니다.
예를 들어 , 저는 exit 99
를 사용하고 있습니다.
댓글
- SO : " 왜 음수 errno를 반환합니까? (예 : return -EIO) "
답변
코드 99로 종료하는 것은 의미가 없습니다. 특정 프로그램.
어느 쪽이든 exit
는 특정 종료 코드 (이 경우 99)와 함께 셸을 종료합니다. 자세한 내용은 help exit
:
exit: exit [n] Exit the shell. Exits the shell with a status of N. If N is omitted, the exit status is that of the last command executed.
댓글
- 원하는 경우 bash에서와 같은 반환 코드가있는 특정 항목은
$?
를 사용하여 가져옵니다. - 정답이 아닙니다. 99는 0이 아니므로 indi 어떤 이유로 프로그램이 실패했음을 나타냅니다.
- @psusi 실패와 관련이 없지만 다른 실행 조건을 나타내는 응용 프로그램에는 0이 아닌 종료 코드가 많이 있습니다 (많은 프로그램이이를 사용하여 허위를 나타냅니다. 예를 들어 실패보다는 최적이 아닌 실행). 특정 종료 상태가 반드시 프로그램이 사실이 아님을 알지 못한 채 실패를 표시한다고 주장하는 것입니다. 알 수없는 프로그램에서 ' " 99 "의 의미를 추측하지 않았습니다.
- 쉘과 make를 포함한 대부분의 다른 도구는 0이 아닌 종료 값을 오류로 처리합니다.
- 이것들을 제외하고는 더 큰 검사 컨텍스트가 아닌 격리 실패를 나타냅니다. 진실성을 위해. 어느 쪽이든 애플리케이션이 정의되지 않은 경우 일부 종료 코드의 의미를 추측하지 않습니다.
Answer
@Chris Down 외에도 셸용으로 예약 된 몇 가지 반환 코드가 있으며 특별한 의미가 있습니다.
RETVAL Meaning 1 General errors 2 Misusage 127 Command not found
이 를 참조하세요.
댓글
- @MrLister : 맞아요. 수정되었습니다!
- 아직
s
가 누락되었습니다 (" 오류 "?)
답변
일반적으로 다음과 같이 스크립트를 완료하는 경우 :
exit 0
셸은 반환 코드 . 이 0은 모든 것이 정상임을 의미합니다. .
하지만 프로그램에서 오류 조건을 발견하면 0이 아닌 리턴 코드로 종료하여 쉘에 문제가 있음을 알려야합니다. 더 구체적이지 않으려면 1을 사용하면됩니다.
exit 1
그러나 다음을 사용하여 특정 유형의 실패를 쉘에 알릴 수 있습니다. 예를 들어 bash
자체는 프로그램을 찾을 수 없음 에 대해 127을 반환합니다. 따라서 스크립트의 동작을 문서화하면 다음과 같은 유용한 작업을 수행 할 수 있습니다. 마지막으로 실행 된 프로그램의 리턴 코드를 담고있는 특수 변수 $?
의 값을 확인하여 실행합니다.
이것을 얼마 전에 살펴 보았는데 예를 들어 FreeBDS에는 man 3 sysexits
p에 문서화 된 종료 코드와 관련하여 매우 유용한 규칙이있었습니다. >
댓글
- " 셸은 반환 코드로 0을 얻습니다. " 잘못되었습니다. 매개 변수가없는
exit
는 마지막 명령 실행의 상태 코드와 함께 종료됩니다 ( pub 참조). s.opengroup.org/onlinepubs/009695399/utilities/exit.html ) - 감사합니다. 오랫동안 내 오해가있어 답을 고칠 것입니다.
- 좋습니다. 반대표 제거 🙂
답변
반환에 대한 매우 오랜 관습 (Unix에서)이 있습니다. 상태 범위 :
- 0은 성공을 의미합니다.
- 양수는 사소한 문제를 의미하지만 기본적으로 작업이 완료되었음을 의미합니다.
- 음수는 심각한 오류를 의미합니다. (예 : 디스크가 꽉 찼거나 파일을 찾을 수 없음)
각 양수와 음수가 의미하는 것은 프로그래머에게 달려 있습니다. 때로는 다른 유사한 프로그램 (예 : Gnu 도구)과의 호환성을 위해 선택할 수 있습니다. @Gnouc은 일부를 나열합니다.
아니요, 종료 코드 99에 특별한 의미가 있는지 알지 못합니다. 사용 된 것을 본 적이 없습니다. 아마도 “맥주 부족”
참조 :
댓글
- 그 Unix 규칙에 대해 들어 본 적이 없습니다. 두 참조 문헌이 해당 규칙에 대한 주장을 뒷받침하지 않습니다.
- 첫 번째 참조가 있습니다. 유닉스 반환 상태 양의 음수 에 대한 Google 조회수가 167 만 건입니다.
- 에 지정된 음수 반환 값이 적습니다. POSIX.1 그러나 이들은 API 프로그래밍을위한 것입니다.
답변
일부 프로그래머는 시작하는 다양한 오류 코드를 제공합니다. 새 버전은 새로운 특정 오류 코드를 도입 할 수 있으므로
“기타 모든 오류 / 지정되지 않은 오류”에 어떤 코드를 사용해야합니까? 종료 코드는 255에서 잘 리므로 “기타 오류”로 99를 선택합니다. .