#bash #shell
Вопрос:
Ниже приведена моя выдержка из части об отказе:
if [[ -n "${war_to_be_deployed-}" ]] ; then [[ "${#runtime_args[@]-}" == "${#expected_runtime_args[@]-}" ]] || _fatal "Failed runtime_args" for ((i=0 ; ilt;${#runtime_args[@]-} ; i)); do
выдает ошибку ниже на bash GNU bash, version 4.4.20(1)-release (x86_64-pc-linux-gnu)
. Что я здесь делаю неправильно ? Спасибо.
${#runtime_args[@]-}: bad substitution
Комментарии:
1. Почему есть
-
в${#runtime_args[@]-}
и${#expected_runtime_args[@]-}
? В этом нет необходимости
Ответ №1:
${#runtime_args[@]}
— количество элементов в массиве. Проверка -
-это то, что вызывает ошибку. Сгенерирован ли этот сценарий? Мне это кажется синтаксической ошибкой.
Комментарии:
1. Нет, он не сгенерирован, он отлично работает в предыдущей версии Ubuntu, версия Ubuntu 14