이 가지 분명히 내가 출구 (1) 또는 출구 (42)를 사용하는 경우 그것은 실제로 많은 중요한
문제가되지 않는다는 것입니다.
종료 코드는 종료 프로세스를 시작하는 프로세스에서 사용할 수 있습니다. 종료 프로세스는 완료 프로세스와 실패 원인을 알기 위해 사용됩니다.
프로그램을 시작한 프로세스는 프로그램이 완료된 직후 환경 변수 $?
의 값을 검사하여 성공했는지 또는 성공하지 못한 이유를 알 수 있습니다.
프로그램이 원격 사이트에서 파일을 다운로드하여 로컬 디렉토리에 저장한다고 가정 해 보겠습니다. 기존의 로컬 디렉토리를 사용할 것으로 예상되며, 존재하지 않으면 로컬 디렉토리를 생성하려고 시도하지 않습니다. 예를 들어 원격 사이트가 404 Not Found
을 반환하고 코드가 62
인 경우 원격 파일을 다운로드 할 수없는 경우 코드 37
을 사용하여 종료 할 수 있습니다. 네트워크가 다운 되었기 때문에 파일을 다운로드 할 수 없거나 시간 초과가 발생하여 41
디렉토리가 존재하지 않습니다.
예를 들어, 프로그램을 호출하는 bash
스크립트는 프로그램 완료 후 즉시 환경 변수 $?
의 값을 확인할 수 있습니다. 값이 37
(원격 파일을 찾을 수없는 경우) 인 경우 오류가 영구적이어서 다시 시도하지 않아야합니다. 종료 코드 62
(네트워크 문제)에서 몇 초 기다렸다가 다시 시도 할 수 있습니다 (오류 상태는 일시적이며 잠시 후 사라질 수 있음). 종료 코드 41
(로컬 디렉토리를 찾을 수 없음)에서 로컬 디렉토리를 만든 다음 프로그램을 다시 시작할 수 있습니다 (전제 조건이 충족되지 않았습니다).
42 [생명, 우주 및 모든 것에 대한 해답!] (https://www.google.it/?client=ubuntu#channel=fs&q=the+answer+to+life%2C+the+universe + and + everything & gfe_rd = cr) – Bakuriu
127을 찍었습니까? – EOF
42는 분명히 명명 된 값의 * 반대 *입니다. 코드의 작성자 만이 그 이유를 알고있는 것은 마법의 가치입니다. 이식성이 없지만 유일한 휴대용 종료 값은 0,'EXIT_SUCCESS' 및'EXIT_FAILURE'입니다. –