Declaring local variables in functions

Whenever we declare a variable in a script, it is accessible to all functions. The variable is global by default. If the variable is modified by any line of script or any function, it will be modified in global scope. This may create problems in certain situations. We will see this problem in the following script, function_12.sh:

#!/bin/bash 
name="John" 
hello() 
{  
   name="Maya" 
         echo $name 
} 
echo $name           # name contains John 
hello          # name contains Maya 
echo $name           # name contains Maya 

Test the script as follows:

    $ chmod +x function_12.sh
    $ ./function_12.sh
  

This should produce the following output:

    John
    Maya
    Maya
  

To make a variable local, we declare it as follows:

    local var=value
    local varName
  

Let's write ...

Get Learning Linux Shell Scripting - Second Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.