在shell函数中定义的变量的作用域问题

函数外定义的变量其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止。
函数内定义的变量其作用域是从被调用的地方开始,到shell结束或被显示删除的地方为止

一个很简答的例子说明问题:

	#!/bin/bash
	func_(){
	    var1='123'
	}
	func_
	echo $var1

输出结果

123

因此,在调用了函数之后,函数内定义的变量在离开该函数后依然存在。
这个问题非常容易导致程序出现bug,要多注意哦。

你可能感兴趣的:(报错与修改,bash)