
Я использую ассоциативный массив на своих серверах RHEL 6 и только что протестировал скрипт на сервере RHEL 5, и, по-видимому, -A не поддерживается для команды declare в RHEL 5:
declare -A var
-bash: declare: -A: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...
Есть ли способ обойти это? Есть ли способ обновить только команду declare или только оболочку bash до той, которую использует RHEL 6?
Версии bash: rhel5 - bash-3.2-24.el5 rhel6 - bash-4.1.2-9.el6_2.x86_64
решение1
Ассоциативные массивы были введены в версии bash4.
Так как опция-Ане распознается, это означает, что вы используете rhel 5 native bash.
Вам нужно скомпилировать/собратьБаш 4из источника для использования ассоциативных массивов.