12-05-2008
Exit Codes With Special Meanings
Reserved Exit Codes
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.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I have gotten the script up to this point and it works fine a system but when i copy it to another unix server running solaris 9 as the original one , its gives an error './mon_fs.sh: 0: unknown test operator' .
(see script bellow)
can the Gurus see to this as i am just a beginner with... (2 Replies)
Discussion started by: ibroxy
2 Replies
2. UNIX for Advanced & Expert Users
Hi,
I have the following shell script :
Nbr_BD_Link=0
Nbr_BD_Link=`
sqlplus sysadm/${PSWD}@${DB_Name} << EOF | tail -4 | head -1 2>/dev/null
set head off feedback off ;
select count(*) from dba_db_links ;
exit ;
EOF `
echo ${Nbr_BD_Link}
if ; then
... (4 Replies)
Discussion started by: big123456
4 Replies
3. Shell Programming and Scripting
Hi
I want to group
like this but syntactic is not right ...
Thanks
if
Like this below does not work properly ..
if
then
:
else
usage
exit 1
fi (5 Replies)
Discussion started by: zam
5 Replies
4. Shell Programming and Scripting
Hi All,
can some one figure out the syntax issue here. How to overcome this?
#!/bin/sh
$ HFR_MAIL=NO
$ PRP_MAIL=NO
$ MC_MAIL=NO
$ if && && ]; then
> echo "NO "
> else
> echo "YES"
> fi
test: unknown operator NO
$ if && && ]; then
> echo "NO"
> else
> echo "YES"
>... (4 Replies)
Discussion started by: shellscripter
4 Replies
5. Shell Programming and Scripting
Greetings, using ksh on Solaris, I am trying to identify the current version of a package installed on multiple servers using if statement in a precursor to upgrading.
I have searched the forums and have found many hits, reviewed 3 pages and have tried the different variations noted there. Also... (3 Replies)
Discussion started by: 22blaze
3 Replies
6. Shell Programming and Scripting
hi all, i am using the below command in my script
if ; then
This statement is causing the problme "ScriptName.ksh: XXX-XXX: unknown test operator"
could you please suggest me , how can i avoid these messages.
Singhal (7 Replies)
Discussion started by: singhald
7 Replies
7. Shell Programming and Scripting
In my script (currently running on Solaris ) I'm testing for zero size with wild character. There are mutilple files exist in the directory.
if
then
filename=`ls -1tr ${fileformat}.${date}.? | tail -1`
else
${BATCH_FATAL:-echo} "$0:ERROR:No file found ${source}/${fileformat}.${date}.?"... (5 Replies)
Discussion started by: gauravgoel83
5 Replies
8. Shell Programming and Scripting
Hi ,
Os - Solaris
Shell - Ksh
I am getting below error in if condition
+ id
+
./om_wf_complete.sh: gid=4081(Infadmn): unknown test operator
+ exit 1
if ; then
touch /home/odwt/1.0.0/out/oworkflow.dat
chmod 777 /home/odwt/1.0.0/out/oworkflow.dat
elif ; then
touch... (8 Replies)
Discussion started by: nag_sathi
8 Replies
9. Shell Programming and Scripting
O/S solaris 9
shell ksh
if
then
chk_op="WARNING...reboot within the last 24hrs, restarted at `who -r | awk '{print $4$5"@"$6}'`" ;
else
if ;
then
last_reboot1=`who -b | awk '{print $4" "$5" "$6}'`
last_reboot2='..OK..'`uptime | awk '{print$3" "$4}'`
... (4 Replies)
Discussion started by: squrcles
4 Replies
10. Shell Programming and Scripting
Hi,
I wrote a function for the first time and not able to get the desired result.
I have requirement to execute 10 queries. For this i wrote a function like below.
function Command {
typeset var SOL;
if ; then CONNECTION="${CONNECTION} -e -time";
else SOL="`nzsql ${CONNECTION} -c... (8 Replies)
Discussion started by: Samah
8 Replies
EXIT(P) POSIX Programmer's Manual EXIT(P)
NAME
exit - cause the shell to exit
SYNOPSIS
exit [n]
DESCRIPTION
The exit utility shall cause the shell to exit with the exit status specified by the unsigned decimal integer n. If n is specified, but
its value is not between 0 and 255 inclusively, the exit status is undefined.
A trap on EXIT shall be executed before the shell terminates, except when the exit utility is invoked in that trap itself, in which case
the shell shall exit immediately.
OPTIONS
None.
OPERANDS
See the DESCRIPTION.
STDIN
Not used.
INPUT FILES
None.
ENVIRONMENT VARIABLES
None.
ASYNCHRONOUS EVENTS
Default.
STDOUT
Not used.
STDERR
The standard error shall be used only for diagnostic messages.
OUTPUT FILES
None.
EXTENDED DESCRIPTION
None.
EXIT STATUS
The exit status shall be n, if specified. Otherwise, the value shall be the exit value of the last command executed, or zero if no command
was executed. When exit is executed in a trap action, the last command is considered to be the command that executed immediately preceding
the trap action.
CONSEQUENCES OF ERRORS
Default.
The following sections are informative.
APPLICATION USAGE
None.
EXAMPLES
Exit with a true value:
exit 0
Exit with a false value:
exit 1
RATIONALE
As explained in other sections, certain exit status values have been reserved for special uses and should be used by applications only for
those purposes:
126 A file to be executed was found, but it was not an executable utility.
127 A utility to be executed was not found.
>128 A command was interrupted by a signal.
FUTURE DIRECTIONS
None.
SEE ALSO
Special Built-In Utilities
COPYRIGHT
Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2003 Edition, Standard for Information Technol-
ogy -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of
Electrical and Electronics Engineers, Inc and The Open Group. In the event of any discrepancy between this version and the original IEEE
and The Open Group Standard, the original IEEE and The Open Group Standard is the referee document. The original Standard can be obtained
online at http://www.opengroup.org/unix/online.html .
IEEE
/The Open Group 2003 EXIT(P)