Open In App

Batch Script – Environment Variables

Environment variables are a collection of dynamic named values that are saved on the system and utilized by programs that are running in shells or subshells on Linux and Unix-based systems. An environment variable is, to put it simply, a variable with a name and a corresponding value.

You can alter the system’s operation and the actions of its programs by using environment variables. For instance, the environment variable may keep track of the default text editor or browser, the location of executable files, or the keyboard layout and system locale.



Environment Variables and Shell Variables 

Variables are formatted as follows:

KEY=value
KEY="Some other value"
KEY=value1:value2

The two fundamental groups into which variables can be separated are the environment and the shell.



All child processes and shells that are launched inherit any environment variables that are system-wide and available.

Only the current shell instance is affected by shell variables. There are specific internal shell variables for each shell, including zsh and bash.

In Linux, a number of commands are available to list and set environment variables, including the following:

Printing Environment Variables 

In order to display environment variables printenv is the most used command that serves the purpose. Only that variable’s value is displayed, if its name is supplied as an argument to the command. printenv prints a list of all environment variables, one variable per line, if no argument is given.

For instance, you would execute: to display the value of the HOME environment variable.

 

For instance, you would execute: to display the value of the PATH environment variable.

 

For instance, running the printenv or env command without any arguments will display a list of all environment variables:

 

Some of the most prevalent environmental variables are listed below:

Only the environment variables are printed using the printenv and env commands. 

Other Methods to List Linux Environment Variables

The following command will display shell and environment variables using the built-in shell utility declare:-

declare

 

 

Using the set command, you may retrieve a list of every variable, including environment, shell variables, and shell functions:

set

 

 

You should most likely pipe the output to the less command because the command will output a lengthy list of all variables.

 

 

Persistent Environment Variables

Environment variables must be defined in the bash configuration files if you want them to be persistent. In most Linux systems, when a new session is launched, environment variables are read from the following files:

$ FOO=bar
$ VAR _A="GeeksforGeeks"
$ export JAVA_HOME="/path/to/java/home"
$ export PATH=$PATH:$JAVA_HOME/bin
$ export PATH="$HOME/bin:$PATH"

You can add additional environment variables to the running shell session by using the source command:

$ source ~/.bashrc

Setting Shell and Environment Variables 

Using the name VAR_A and the value Welcome, you can easily create a new shell variable by typing:

Creating Shell Variables

Let’s start by setting up a shell variable for the active session. To accomplish this, all we need to do is provide a name and a value. We’ll stick to tradition and set the variable to a simple string while maintaining the variable name in all caps.

Now there is a shell variable. Despite being present in our current session, this variable won’t be shared with any child processes.

In the set output, we can observe this by grepping for our new variable:

 

By performing the identical thing with printenv, we can confirm that this is not an environmental variable:

 

There should be no output produced.

Creating Environmental Variables

Let’s now convert the shell variable to an environmental variable. Exporting the variable will allow us to achieve this. The appropriate command to do so is named as follows:

 

As a result, our variable will now be an environment variable. This can be verified by rechecking our environmental listing with printenv command.

Demoting and Unsetting Variables

We continue to declare our VAR_A variable as an environmental variable. By typing the following, we can turn it back into a shell variable:

 

However, it is still a shell variable:

 

The unset command can be used to totally unset a variable, whether it be shell or environmental:

 

The variable was unset, thus nothing is returned.

Batch Script of Environment Variables

Following is the batch script of environment variables: PATH, HOME, LANG, and SHELL.

Script:

#!/bin/bash
echo $PATH
echo $HOME
echo $LANG
echo $SHELL

Output:

 


Article Tags :