exit
Statement
The exit
statement causes awk
to immediately stop
executing the current rule and to stop processing input; any remaining input
is ignored. It looks like this:
exit [return code]
If 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, it is executed
(see section The BEGIN
and END
Special Patterns).
If exit
is used as part 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.
If you do not want the END
rule to do its job in this case, you
can set a variable to non-zero 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
returns status zero (success). In the case where an argument
is supplied to a first exit
statement, and then exit
is
called a second time with no argument, the previously supplied exit value
is used (d.c.).
For example, let's say you've discovered an error condition you really
don't know how to handle. Conventionally, programs report this by
exiting with a non-zero status. Your awk
program can do this
using an exit
statement with a non-zero argument. Here is an
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") }
Go to the first, previous, next, last section, table of contents.