Exit Code Number Meaning Example Comments
1 - Catchall for general errors let "var1 = 1/0" Miscellaneous errors, such as "divide by zero" and other impermissible operations
2 - Misuse of shell builtins (according to Bash documentation) empty_function() {} Seldom seen, usually defaults to exit code 1
126 - Command invoked cannot execute Permission problem or command is not an executable
127 - "command not found" illegal_command Possible problem with $PATH or a typo
128 - Invalid argument to exit exit 3.14159 exit takes only integer args in the range 0 - 255 (see first footnote)
128+n - Fatal error signal "n" kill -9 $PPID of script $? returns 137 (128 + 9)
130 - Script terminated by Control-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 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.