я ожидал
excludes="${excludes:-( ${default_excludes[@]} )}"
быть массивом, если $excludes
он пуст. К сожалению, материал после :-
принимается за строку. Я пропустил некоторые искажения синтаксиса, или я должен использовать неуклюжий
if [ -z "${excludes:-}" ]
then
excludes=( "${default_excludes[@]}" )
fi
?
Поскольку у меня были случаи, когда мой
arr2
мог быть пустым, но установленным, я не мог найти простое решение. Поэтому мне пришлось пойти с функцией и глобальной временной переменной. Но это работает в любом случае и в Bash 3.2 и Bash 4Я использую косвенную ссылку на массив, чтобы скопировать значения
TEMP_VAR
, но я не смог выяснить косвенное присвоение массива в bash, отсюда две строки и временная переменнаяДля вас
set -eu
фанатов тамисточник