main(){
for item in {1..5};do
echo ${item}
done
echo "done"
func
}
function func(){
echo ${item}
}
main
上面这段代码,在for循环执行完毕后又执行了一个函数func,但是func居然打印出了item的最后一次的赋值5,说明这里for 中 item定义的是一个全局的变量,
这和我们的认知是不太一样的,理论上item的作用域应该只在main函数中,出了main函数,其他函数应该是不认的。所以这里可能会有坑。
因此比较保险一点的做法是,在for之前先定义一个local的变量item
local item;for item in {1..5};do
echo ${item}
done