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.