Manned.org

exit

EXIT(1POSIX)                POSIX Programmer's Manual               EXIT(1POSIX)

PROLOG
       This manual page is part of the POSIX Programmer's Manual.  The Linux
       implementation of this interface may differ (consult the corresponding
       Linux manual page for details of Linux behavior), or the interface may
       not be implemented on Linux.

NAME
       exit — cause the shell to exit

SYNOPSIS
       exit [n]

DESCRIPTION
       The exit utility shall cause the shell to exit from its current execution
       environment with the exit status specified by the unsigned decimal
       integer n.  If the current execution environment is a subshell
       environment, the shell shall exit from the subshell environment with the
       specified exit status and continue in the environment from which that
       subshell environment was invoked; otherwise, the shell utility shall
       terminate with the specified exit status. 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, except that the behavior is
       unspecified if n is not an unsigned decimal integer or is greater than
       255. 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

       Propagate error handling from within a subshell:


           (
               command1 || exit 1
               command2 || exit 1
               exec command3
           ) > outputfile || exit 1
           echo "outputfile created successfully"

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.

       The behavior of exit when given an invalid argument or unknown option is
       unspecified, because of differing practices in the various historical
       implementations. A value larger than 255 might be truncated by the shell,
       and be unavailable even to a parent process that uses waitid() to get the
       full exit value. It is recommended that implementations that detect any
       usage error should cause a non-zero exit status (or, if the shell is
       interactive and the error does not cause the shell to abort, store a non-
       zero value in "$?"), but even this was not done historically in all
       shells.

FUTURE DIRECTIONS
       None.

SEE ALSO
       Section 2.14, Special Built-In Utilities

COPYRIGHT
       Portions of this text are reprinted and reproduced in electronic form
       from IEEE Std 1003.1-2017, Standard for Information Technology --
       Portable Operating System Interface (POSIX), The Open Group Base
       Specifications Issue 7, 2018 Edition, Copyright (C) 2018 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 .

       Any typographical or formatting errors that appear in this page are most
       likely to have been introduced during the conversion of the source files
       to man page format. To report such errors, see
       https://www.kernel.org/doc/man-pages/reporting_bugs.html .

IEEE/The Open Group                   2017                          EXIT(1POSIX)