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 ...