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

Output:

John
Maya
Maya

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

local var=value
local varName

Let's write the script function_13.sh as follows:

#!/bin/bash ...

Get Learning Linux Shell Scripting now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.