Bashの変数にデフォルトの配列を書き込む

Bashの変数にデフォルトの配列を書き込む

楽しみにしています。

excludes="${excludes:-( ${default_excludes[@]} )}"

空の場合は配列$excludes。残念ながら、次の内容は:-文字列と見なされます。いくつかの構文のバリエーションが欠落しているのでしょうか、それとも薄暗い構文を使用する必要がありますか?

if [ -z "${excludes:-}" ]
then
    excludes=( "${default_excludes[@]}" )
fi

ベストアンサー1

次の構文を使用して、別の配列から配列を構成できます。

arr1=( "${arr2[@]}" )

これはデフォルトの構文に変換できます。

arr1=("${arr1[@]:-${arr2[@]}}")

スペースや改行文字を含む配列メンバーなど、いくつかの極端なケースをテストしましたが、正しく処理しているようです。

おすすめ記事