Вокруг =
не должно быть пробелов.
Использование
hash[${array1[i]}]=${array2[i]}
было бы более разборчивым ИМО.
Для записи, в zsh
, чтобы превратить два массива в ассоциативный массив/хэш, вы должны сделать:
typeset -A hash
hash=("${(@)array1:^array2}")
Где ${array1:^array2}
— оператор сжатия массива , а флаг раскрытия параметра @
используется для сохранения пустых элементов (в двойных кавычках, подобно"$@"
). (кстати, хэши bash не поддерживают пустые ключи ).