# array

          array option arrayName ?arg arg...?
          array anymore arrayName searchId
          array donesearch arrayName searchId
          array exists arrayName
          array get arrayName ?pattern?
          array names arrayName ?pattern?
          array nextelement arrayName searchId
          array set arrayName list
          array size arrayName
          array startsearch arrayName

## ОПИСАНИЕ

Эта команда предназначена для выполнения перечисленных ниже операций с массивами. Если иное не оговорено специально, arrayName должно быть именем существующего массива. Аргумент option определяет конкретную операцию. Для команды определены перечисленные ниже опции.

array anymore arrayName searchId
  Возвращает 1 если при выполнении команды поиска (см. ниже) остались невыбранные элементы массива, и 0 в противном случае. SearchId указывает операцию поиска, информация о которой запрашивается (величина searchId возвращается при выполнении команды array startsearch). Эта опция особенно удобна, если массив содержит элемент с пустым именем, поскольку команда array nextelement не позволяет в таком случае определить, закончен ли поиск.
array donesearch arrayName searchId
  Команда прерывает поиск элементов массива и удаляет всю связанную с поиском информацию. SearchId указывает операцию поиска, информация о которой удаляется (величина searchId возвращается при выполнении команды array startsearch). Команда возвращает пустую строку.
array exists arrayName
  Возвращает 1, если arrayName есть имя массива, и 0, если такой переменной не существует или она является скалярной переменной.
array get arrayName ?pattern?
  Возвращает список, содержащий пары элементов. Первый элемент пары - имя элемента массива arrayName, второй элемент пары - значение этого элемента. Порядок пар не определен. Если шаблон не задан, то все элементы массива будут включены в результат. Если шаблон задан, то в результат будут включены только те элементы, чьи имена соответствуют шаблону (используя те же правила, что и в команде glob). Если arrayName не является переменной массива или массив не содержит элементов, то возвращается пустой список.
array names arrayName ?pattern?
  Возвращает список, содержащий имена всех элементов массива, соответствующих шаблону (используя те же правила, что и в команде glob). Если шаблона нет, то команда возвращает имена всех элементов массива. Если в массиве нет элементов, соответствующих шаблону или arrayName не является именем переменной массива, то возвращается пустая строка.
array nextelement arrayName searchId
  Возвращает имя следующего элемента массива arrayName, или пустую строку, если все элементы массива уже возвращены. SearchId указывает операцию поиска, (величина searchId возвращается при выполнении команды array startsearch). Предупреждение: если в массив внесен новый элемент или из массива удален один из элементов, то все операции поиска в этом массиве автоматически заканчиваются, как если бы была выполнена команда array donesearch. Соответственно, попытка выполнить после этого команду array nextelement приведет к ошибке.
array set arrayName list
  Устанавливает значение одного или нескольких элементов массива arrayName. Список list должен иметь такую же структуру, как список, возвращаемый командой array get, то есть состоять из четного числа элементов. Все нечетные элементы списка рассматриваются как имена элементов массива arrayName, а следующие за ними четные элементы - как новые значения соответствующих элементов.
array size arrayName
  Возвращает строку, содержащую десятичное число, равное количеству элементов указанного массива. Если arrayName не является именем массива, возвращается 0.
array startsearch arrayName
  Эта команда инициализирует процесс поиска элементов указанного массива. После этого имя каждого следующего элемента массива можно получить с помощью команды array nextelement. По завершении поиска необходимо выполнить команду array donesearch. Команда array startsearch возвращает идентификатор процесса поиска, который должен использоваться в командах array nextelement и array donesearch. Благодаря этому механизму возможно проведение нескольких процессов поиска элементов одного и того же массива одновременно.