foo()
{
local arr=(-l largs\
-m margs\
-n nargs
)
echo "size of arr: ${#arr[@]}"
}
foo # prints 1
上面的代码打印出来1
了,但显然arr
应该是大小6
。我将代码更改为:
foo()
{
arr=(-l largs\
-m margs\
-n nargs
)
echo "size of arr: ${#arr[@]}"
}
foo # prints 6
后一个版本删除local
,并打印正确答案。所以为什么?本地重要吗?
PS:GNU bash,版本 3.00.15(1)-release (x86_64-redhat-linux-gnu)。