Appendix E. Exit Codes With Special Meanings. Comtrol DeviceMaster Software Development Kit
Oglas
Oglas
Appendix E. Exit Codes With Special Meanings
Table E-1. Reserved Exit Codes
Exit Code
Number
Meaning Example Comments
1
2
126
127
128
128+n
130
Catchall for general errors
Misuse of shell builtins
(according to Bash documentation)
Command invoked cannot execute
"command not found"
Fatal error signal "n"
Script terminated by
Control-C let "var1 = 1/0" empty_function()
{}
/dev/null
Miscellaneous errors, such as "divide by zero" and other impermissible operations
Missing keyword or command, or
permission problem (and diff return code on a failed binary file comparison).
Permission problem or command is not an executable illegal_command Possible problem with
$PATH
or a typo exit 3.14159
exit
takes only integer args in the range 0 -
255 (see first footnote)
$?
returns 137 (128 + 9)
kill -9
$PPID
of script
Ctl-C
Control-C is fatal error signal 2, (130 = 128
+ 2, see above)
255*
Exit status out of range exit -1
exit
takes only integer args in the range 0 -
255
According to the above table, exit codes 1 - 2, 126 - 165, and 255 [144] have special meanings, and should therefore be avoided for user-specified exit parameters. Ending a script with exit 127 would certainly cause confusion when troubleshooting (is the error code a "command not found" or a user-defined one?). However, many scripts use an exit 1 as a general bailout-upon-error. Since exit code 1 signifies so many possible errors, it is not particularly useful in debugging.
There has been an attempt to systematize exit status numbers (see
/usr/include/sysexits.h
), but this is intended for C and C++ programmers. A similar standard for scripting might be appropriate. The author of this document proposes restricting user-defined exit codes to the range 64 - 113 (in addition to 0, for success), to conform with the C/C++ standard. This would allot 50 valid codes, and make troubleshooting scripts more straightforward. [145] All user-defined exit codes in the accompanying examples to this document conform to
this standard, except where overriding circumstances exist, as in Example 9-2.
only from the Bash or sh prompt. Running the C-shell or tcsh may give different values in some cases.
Appendix E. Exit Codes With Special Meanings 802
Prenesi
Oglas