函数外定义的变量其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止。
函数内定义的变量其作用域是从被调用的地方开始,到shell结束或被显示删除的地方为止
一个很简答的例子说明问题:
#!/bin/bash
func_(){
var1='123'
}
func_
echo $var1
输出结果
123
因此,在调用了函数之后,函数内定义的变量在离开该函数后依然存在。
这个问题非常容易导致程序出现bug,要多注意哦。