Я написал script, который использует ассоциативные массивы в bash (v 4).
Он отлично работает на моей локальной машине, которая использует 4.1.5(1)-release
.
На рабочей машине, используя 4.1.0(1)-release
, следующая строка, объявляющая массив-член, терпит неудачу:
declare -A uniqjars
с сообщением:
/script.sh: line 11: declare: -A: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...]
У меня сложилось впечатление, что это была общая функция bash 4?
В man для bash на производственной машине обсуждается использование -A
, поэтому я предполагаю, что он должен работать.
Ассоциативные массивы создаются с использованием
declare -A name
.
Я могу подтвердить, что script использует правильную версию bash, выписав значение echo 'bash -version
.
Что я могу делать неправильно?