Magazine

Understanding Variables in Bash

Posted on the 25 March 2021 by Satish Kumar @satish_kumar86

Let’s learn about creatingvariablesin a shell.

Declaring variables in Linux is very easy. We just need to use the variable name and initialize it with the required content.

$ person="Ganesh Naik"

To get the content of the variable, we need to add the prefix $ before the variable, for example:

$ echo person
person
$ echo $person
Ganesh Naik

The unset command can be used to delete the declared variable:

$ a=20$ echo $a
$ unset a

Theunsetcommand will clear or remove the variable from the shell environment as well.

Here, thesetcommand will show all variables declared in the shell:

$ person="Ganesh Naik"
$ echo $person$ set

Here, using thedeclarecommand with the-xoption will make it an environmental or global variable. We will find out more about environmental variables in the next section.

$ declare -x variable=value

Here, theenvcommand will display all environmental variables:

$ env

Whenever we declare a variable, that variable will be available in the current Terminal or shell. This variable will not be available to any other Terminal or shell:

variable=value

Let’s write a shell script, as follows:

#!/bin/bash 
# This script clears the window, greets the user, 
# and displays the current date and time. 
 
clear                                   # Clear the window 
echo "SCRIPT BEGINS" 
echo "Hello $LOGNAME!"             # Greet the user 
echo 
 
echo "Today's date and time:" 
date                           # Display current date and time 
echo                 # Will print empty line 
 
my_num=50 
my_day="Sunday" 
 
echo "The value of my_num is $my_num" 
echo "The value of my_day is $my_day" 
echo 

Let’s see the effect of $""'' on variable behavior:

#!/bin/bash 
 
planet="Earth" 
 
echo $planet 
echo "$planet" 
echo '$planet' 
echo $planet 
 
exit 0

The output is as follows:

Output:
Earth
Earth
$planet
$planet

From the preceding script’s execution, we can observe that $variable and "$ variable" can be used to display the content of the variable. But if we use '$variable' or $variable, then the special functionality of the $ symbol is not available. The $ symbol is used as a simple text character instead of utilizing its special functionality of getting the variable’s content.


Back to Featured Articles on Logo Paperblog