By default, any variable you declare inside a function is a global variable. That means this variable can be used outside and inside the function without problems.
Check out this example:
#!/bin/bash
myvar=10
myfunc() {
myvar=50
}
myfunc
echo $myvar
If you run this script, it will return 50, which is the value changed inside the function.
What if you want to declare a variable that is exclusive to the function? This is called a local variable.
You can declare local variables by using the local command like this:
myfunc() {
local myvar=10
}
To ensure that the variable is used only inside the function, let's check out the following example:
#!/bin/bash
myvar=30
myfunc() {
local myvar=10
}
myfunc
echo $myvar
If you run this script, it will print 30, which means that the local version of the variable is different than the global version...