0
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)。

4

0 回答 0