What Are Environment Variables in Bash?

Environment variables in Bash are dynamic values that affect the behavior of processes on a system. They are used to store configuration settings and information that can be accessed by the shell and other programs. Understanding environment variables is essential for effective scripting and system management in Unix and Linux environments.

1. Definition of Environment Variables

An environment variable is a named value that can be used by the shell and other applications to retrieve information about the environment in which they are running. These variables can store various types of data, such as user preferences, system paths, and configuration settings.

2. Common Environment Variables

There are several commonly used environment variables in Bash:

  • HOME: The home directory of the current user.
  • USER: The username of the current user.
  • PATH: A colon-separated list of directories that the shell searches for executable files.
  • SHELL: The path to the current user's shell.
  • PWD: The current working directory.

3. Viewing Environment Variables

You can view the current environment variables using the printenv command or the env command.

Example of Using printenv

printenv

In this example:

  • The command displays a list of all environment variables and their values.

Example of Using env

env

In this example:

  • The command also displays a list of all environment variables, similar to printenv.

4. Setting Environment Variables

You can set environment variables in Bash using the export command. This makes the variable available to the current shell session and any child processes.

Example of Setting an Environment Variable

export MY_VAR="Hello, World!"

In this example:

  • The command creates a new environment variable named MY_VAR and assigns it the value "Hello, World!".
  • After setting the variable, you can access it using the $ symbol:
  • echo $MY_VAR

5. Unsetting Environment Variables

If you want to remove an environment variable, you can use the unset command.

Example of Unsetting an Environment Variable

unset MY_VAR

In this example:

  • The command removes the MY_VAR environment variable from the current shell session.

6. Local vs. Global Environment Variables

Environment variables can be either local or global:

  • Local Variables: Variables that are only available in the current shell session. They can be created without the export command.
  • Global Variables: Variables that are available to all child processes of the shell. They are created using the export command.

7. Conclusion

Environment variables are a fundamental aspect of the Bash shell and play a crucial role in configuring the behavior of processes. By understanding how to view, set, and unset these variables, you can effectively manage your shell environment and customize your scripting experience. Whether you're working with system paths, user preferences, or application settings, environment variables provide a flexible way to control the behavior of your shell and the programs that run within it.