Array + =(“” string“)返回语法错误:”“ string”'在mksh R39上意外

时间:2018-10-07 14:53:39

标签: shell ksh

在Korn Shell脚本中,我声明一个试图在其中添加字符串的数组:

StateT

执行脚本(deriving newtype instance MonadFree f p => MonadFree f (ApplicationStack s r p)ListRows = [] for row in range(2, sheet.max_row): bla=str(row) rows1 = [] rows1.append(sheet['A' + bla].value) rows1.append(sheet['B' + bla].value) rows1.append(sheet['C' + bla].value) rows1.append(sheet['D' + bla].value) rows1.append(sheet['E' + bla].value) rows1.append(sheet['F' + bla].value) rows1.append(sheet['G' + bla].value) rows1.append(sheet['H' + bla].value) ListRows.append(rows1) )时,我得到

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

我拥有的KSH版本为ksh scriptName

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

1 个答案:

答案 0 :(得分:2)

查看mksh shell and its history的一些文档,似乎R39上似乎不支持数组append操作符,但R40之后才支持<< / p>

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

  

R40:..现在支持用于附加到变量和x+=y数组的x+=(y z)(!MKSH_SMALL)表示法。

     

mksh R40是主要的所有版本:

     

[tg]添加+=来连接标量并追加到数组

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