export - macOS


Overview

The export command in macOS is used to set or export environment variables and functions to the environment of subsequently executed commands. This makes the defined variables and functions available to any child processes spawned by the shell. It is especially useful in scripting and programming where certain environment settings need to be made global for the script or session duration.

Syntax

The basic syntax of the export command is as follows:

export [-fn] [name[=value] ...] 
  • name: The name of the variable you want to set or export.
  • value: The value assigned to the variable.

If no name is provided, export outputs a list of all exported environment variables.

Options/Flags

  • -f: Specifies function name instead of variable names.
  • -n: Remove the export property from subsequent variables. This means, the specified names are no longer exported.

Examples

  1. Exporting a Variable:
    Set an environment variable PATH and add a new directory to the execution path.

    export PATH="$PATH:/usr/local/bin"
    

    This command modifies the PATH environment variable by appending a new path to the existing PATH.

  2. Unsetting Export:
    To stop exporting a variable, use the -n option.

    export -n PATH
    

    After this command, PATH is no longer exported to child processes.

  3. Listing Exported Variables:
    Simply executing export without arguments prints a list of all exported variables.

    export
    

Common Issues

  • Variables Not Persisting: Exported variables only exist for the duration of the session. They will not persist through restarts unless added to startup files like .bashrc or .zshrc.

  • Syntax Errors: Ensure there’s no space around the equals sign when assigning values.

Integration

Combining with Other Commands:

Use export with tools like grep to filter specific exported variables:

export | grep 'PATH'

This command chain helps in quickly identifying the details of exported PATH variable.

In Scripts:

#!/bin/bash
export NODE_ENV=production
node app.js

Here export ensures that the Node.js application runs in the production environment mode.

  • env: Prints out the current environment.
  • unset: Unset a variable, making it no longer available in the environment.
  • set: View or set shell operational parameters.

For further reading and a deeper dive into shell scripting and environment management, check the official documentation on bash shell and explore resources like Advanced Bash-Scripting Guide.