Я пытаюсь использовать новую функцию массива / хэша в bash версии 4, но когда я пытаюсь "объявить" переменную, я получаю сообщение об ошибке.

$ bash --version
GNU bash, version 4.4.0(1)-release (x86_64-apple-darwin15.6.0)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

$ declare -A hello
-bash: declare: -A: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...]

$ declare
...
rvm_warn ()
{
    if rvm_pretty_print stdout; then
        printf "%b" "${rvm_warn_clr:-}$*${rvm_reset_clr:-}\n" 1>&2;
    else
        printf "%b" "$*\n" 1>&2;
    fi
}
...

Когда я просто набираю "объявить", это выглядит как код ruby. Я включил очень маленький фрагмент кода, когда просто набираю "объявить". У меня установлен RVM. Любые идеи, почему я не могу правильно использовать "объявить"?

1 ответ1

1

Параметры чувствительны к регистру, и -A не является допустимым (как показано в представленном списке использования - [-afFirtx]).

Вместо этого используйте -a .

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