В скрипте bash я нашел следующее, но, хотя он работает, я не могу понять его логику

REMOTESNAPS+=(["$FS"]=" $SNAP")

Вышеупомянутое утверждение добавляет элемент в ассоциативный массив REMOTESNAP , определяя, какой индекс « $FS » должен использоваться, и добавляя второй элемент « $SNAP » к нему.

Я не смог найти объяснения для такого умного способа создания ассоциативных массивов, а также не указать точку в руководстве bash, где это объясняется, или я могу вывести его.

Может кто-нибудь расширить эту тему? Это будет действительно оценено.

2 ответа2

0

Просто ссылка, где я нашел пример того, что объяснил мужчина в bash. Искать «Индивидуальные настройки массива для ассоциативных массивов. Именованные индексы (здесь: S1 и S2) являются строками. "

0

В разделе "ПАРАМЕТРЫ" в man bash см.

В контексте, где оператор присваивания присваивает значение переменной оболочки или индексу массива, оператор += может использоваться для добавления или добавления к предыдущему значению переменной. Когда += применяется к переменной, для которой был установлен целочисленный атрибут, значение оценивается как арифметическое выражение и добавляется к текущему значению переменной, которое также оценивается. Когда += применяется к переменной массива с использованием составного присваивания (см. Массивы ниже), значение переменной не сбрасывается (как при использовании =), и новые значения добавляются в массив, начиная с единицы, превышающей максимальный индекс массива (для индексированных массивов) или добавляются как дополнительные пары ключ-значение в ассоциативном массиве.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .