Previous: Nextfile Statement, Up: Statements [Contents][Index]
exit StatementThe exit statement causes awk to immediately stop
executing the current rule and to stop processing input; any remaining input
is ignored.  The exit statement is written as follows:
exit [return code]
When an exit statement is executed from a BEGIN rule, the
program stops processing everything immediately.  No input records are
read.  However, if an END rule is present,
as part of executing the exit statement,
the END rule is executed
(see section The BEGIN and END Special Patterns).
If exit is used in the body of an END rule, it causes
the program to stop immediately.
An exit statement that is not part of a BEGIN or END
rule stops the execution of any further automatic rules for the current
record, skips reading any remaining input records, and executes the
END rule if there is one.  gawk also skips
any ENDFILE rules; they do not execute.
In such a case,
if you don’t want the END rule to do its job, set a variable
to a nonzero value before the exit statement and check that variable in
the END rule.
See section Assertions
for an example that does this.
If an argument is supplied to exit, its value is used as the exit
status code for the awk process.  If no argument is supplied,
exit causes awk to return a “success” status.
In the case where an argument
is supplied to a first exit statement, and then exit is
called a second time from an END rule with no argument,
awk uses the previously supplied exit value.  (d.c.)
See section gawk’s Exit Status for more information.
For example, suppose an error condition occurs that is difficult or
impossible to handle.  Conventionally, programs report this by
exiting with a nonzero status.  An awk program can do this
using an exit statement with a nonzero argument, as shown
in the following example:
BEGIN {
    if (("date" | getline date_now) <= 0) {
        print "Can't get system date" > "/dev/stderr"
        exit 1
    }
    print "current date is", date_now
    close("date")
}
NOTE: For full portability, exit values should be between zero and 126, inclusive. Negative values, and values of 127 or greater, may not produce consistent results across different operating systems.
Previous: Nextfile Statement, Up: Statements [Contents][Index]