ich habe erwartet
excludes="${excludes:-( ${default_excludes[@]} )}"
ein Array sein, wenn $excludes
es leer ist. Leider wird das Zeug danach :-
als String angesehen. Habe ich eine Syntaxverzerrung verpasst oder muss ich die klobige verwenden?
if [ -z "${excludes:-}" ]
then
excludes=( "${default_excludes[@]}" )
fi
?
Da ich Fälle hatte, in denen meine
arr2
möglicherweise leer, aber festgelegt waren, konnte ich keine einfache Lösung finden. Also musste ich mich für eine Funktion und eine globale temporäre Variable entscheiden. Aber es funktioniert in jedem Fall und in Bash 3.2 und Bash 4Ich verwende eine indirekte Array-Referenz, um die Werte zu kopieren
TEMP_VAR
, aber ich konnte keine indirekte Array-Zuweisung in bash herausfinden, daher die beiden Zeilen und die temporäre VariableFür euch
set -eu
Fans da draußenquelle