Array + = ("string") возвращает синтаксическую ошибку: '"string" "неожиданно для mksh R39 - PullRequest
0 голосов
/ 07 октября 2018

В сценарии оболочки Korn я объявляю массив, к которому я пытаюсь добавить строку:

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

При выполнении сценария (либо ksh scriptName, либо ./scriptName) я получаю

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

У меня есть версия KSH @(#)MIRBSD KSH R39 2009/08/01.

Почему я получаю эту ошибку?Я видел этот похожий вопрос , но, похоже, проблема не в этом.

1 Ответ

0 голосов
/ 07 октября 2018

Глядя на некоторую документацию для оболочки mksh и ее истории , кажется, что оператор присоединения массива не , похоже, поддерживается на R39, но только с R40 onwards

Цитирование некоторых заметок из журнала изменений R40:

R40: .. Примечания x+=y и x+=(y z) для добавления к переменным и (!MKSH_SMALL)теперь поддерживаются массивы.

mksh R40 является основным выпуском для всего:

[tg] Добавьте += для объединения скаляров и добавления к массивам

ДонНе думаю, что это было поддержано на R39.Рекомендую обновить до R40, который, кажется, поддерживает гораздо больше функций, чем у вас.

...