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 name="John" hello() {local name="Mary" echo $name } echo $name# name contains John hello# name contains Mary echo $name# name contains John
Test the script as follows:
$ chmod +x function_13.sh $ ./function_13.sh
Output:
John Mary John
The command...