# exit

## 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.
    


* * *