Correct exit(2) Values
The sendmail program expects its
A=
programs to
exit with reasonable exit(2)
values. The values that it expects are listed in
<sysexits.h>. Exiting
with unexpected values causes
sendmail to bounce mail and
gives an unclear message:
554 5.0.0 Unknown status val
Here, val
is the unexpected
error value. To illustrate, consider the following
rewrite of the previous script:
#!/bin/sh EX_OK=0 # From <sysexits.h> EX_USAGE=64 # From <sysexits.h> if [ ${#} -ne 2 ]; then echo $0 needs a username. exit $EX_USAGE fi /usr/ucb/mail -s "$1 gone" postmaster exit $EX_OK
Here, if the argument count is wrong, we exit with the value EX_USAGE, thus producing a clearer (two-line) error message:
/usr/local/bin/gone needs a username. /usr/local/bin/gone... Bad usage.
If all goes well, we then exit with EX_OK so that sendmail knows the mail was successfully delivered.
Get sendmail, 4th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.