Array+=("string") returns syntax error: '"string"' unexpected on mksh R39

Array+=("string") returns syntax error: '"string"' unexpected on mksh R39

在 Korn shell 脚本中,我声明了一个数组,并尝试向其添加字符串:

#!/bin/ksh
array=()
array+=("string")

执行脚本时(ksh scriptName./scriptName)我得到

./scriptName[3]: syntax error: '"string"' unexpected

我的 KSH 版本是 @(#)MIRBSD KSH R39 2009/08/01

为什么会出现此错误?我看到 this similar question 但这似乎不是问题所在。

查看有关 mksh shell and its history 的一些文档,似乎 R39 似乎支持数组追加运算符 not,但仅来自 R40 以后

引用 R40 变更日志中的一些注释:

R40:..The x+=y and x+=(y z) notations for appending to variables and (!MKSH_SMALL) arrays are now supported.

mksh R40 is a major everything release:

[tg] Add += to concatenate scalars and append to arrays

认为 R39 不支持它。建议升级到 R40,它似乎支持比您拥有的功能多得多的功能。