数组+ =值在ksh中不起作用?

2 ksh

我在某处读到ksh的数组支持+=追加新元素,但我尝试了它并且它不起作用:

[ksh] # arr=(a b c d)
[ksh] # arr+=e
[ksh] # echo ${arr[*]}
ae b c d
[ksh] #
Run Code Online (Sandbox Code Playgroud)

为什么arr[0]变成了ae

Gur*_*uru 6

要向数组添加元素,它应该是这样的:

arr+=(e)
Run Code Online (Sandbox Code Playgroud)

通过这样做arr+=e,它将添加到数组的第一个元素.因为只是名称arr指向数组本身的第一个元素:

$ arr=(a b c d)
$ echo ${arr[0]}
a
$ echo $arr
a
Run Code Online (Sandbox Code Playgroud)