# export

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



           export — set the export attribute for variables
    


## SYNOPSIS



           export name**[** =_word_**]**...
    
           export -p
    


## DESCRIPTION



           The shell shall give the _export_ attribute to the variables
           corresponding to the specified _name_ s, which shall cause them to be
           in the environment of subsequently executed commands. If the name
           of a variable is followed by =_word_ , then the value of that
           variable shall be set to _word_.
    
           The _export_ special built-in shall support the Base Definitions
           volume of POSIX.1‐2017, _Section 12.2_ , _Utility Syntax Guidelines_.
    
           When **-p** is specified, _export_ shall write to the standard output
           the names and values of all exported variables, in the following
           format:
    
               "export %s=%s\n", <_name_ >, <_value_ >
    
           if _name_ is set, and:
    
               "export %s\n", <_name_ >
    
           if _name_ is unset.
    
           The shell shall format the output, including the proper use of
           quoting, so that it is suitable for reinput to the shell as
           commands that achieve the same exporting results, except:
    
            1. Read-only variables with values cannot be reset.
    
            2. Variables that were unset at the time they were output need
               not be reset to the unset state if a value is assigned to the
               variable between the time the state was saved and the time at
               which the saved output is reinput to the shell.
    
           When no arguments are given, the results are unspecified.
    


## OPTIONS



           See the DESCRIPTION.
    


## OPERANDS



           See the DESCRIPTION.
    


## STDIN



           Not used.
    


## INPUT FILES



           None.
    


## ENVIRONMENT VARIABLES



           None.
    


## ASYNCHRONOUS EVENTS



           Default.
    


## STDOUT



           See the DESCRIPTION.
    


## STDERR S



           The standard error shall be used only for diagnostic messages.
    


## OUTPUT FILES



           None.
    


## EXTENDED DESCRIPTION



           None.
    


## EXIT STATUS



            0    All _name_ operands were successfully exported.
    
           >0    At least one _name_ could not be exported, or the **-p** option
                 was specified and an error occurred.
    


## CONSEQUENCES OF ERRORS



           Default.
    
           _The following sections are informative._
    


## APPLICATION USAGE



           Note that, unless _X_ was previously marked readonly, the value of
           **"$?"** after:
    
               export X=$(false)
    
           will be 0 (because _export_ successfully set _X_ to the empty string)
           and that execution continues, even if _set_ **-e** is in effect. In
           order to detect command substitution failures, a user must
           separate the assignment from the export, as in:
    
               X=$(false)
               export X
    


## EXAMPLES



           Export _PWD_ and _HOME_ variables:
    
               export PWD HOME
    
           Set and export the _PATH_ variable:
    
               export PATH=/local/bin:$PATH
    
           Save and restore all exported variables:
    
               export -p > _temp-file_
               unset _a lot of variables_
               ... _processing_
               . _temp-file_
    


## RATIONALE



           Some historical shells use the no-argument case as the functional
           equivalent of what is required here with **-p**.  This feature was
           left unspecified because it is not historical practice in all
           shells, and some scripts may rely on the now-unspecified results
           on their implementations. Attempts to specify the **-p** output as the
           default case were unsuccessful in achieving consensus.  The **-p**
           option was added to allow portable access to the values that can
           be saved and then later restored using; for example, a _dot_ script.
    


## FUTURE DIRECTIONS



           None.
    


* * *