GNU Info

Info Node: (gawk.info)Exit Statement

(gawk.info)Exit Statement


Prev: Nextfile Statement Up: Statements
Enter node , (file) or (file)node

The `exit' Statement
--------------------

   The `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 (Note: 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.

   In such a case, if you don't want the `END' rule to do its job, set
a variable to nonzero before the `exit' statement and check that
variable in the `END' rule.  Note: 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 from an `END' rule with no argument, `awk' uses the
previously supplied exit value.  (d.c.)

   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")
     }


automatically generated by info2www version 1.2.2.9