ワイルドカード文字を含む配列パラメータを拡張するには?

ワイルドカード文字を含む配列パラメータを拡張するには?

どのように延長しますか?大量に一つあるワイルドカード議論?たとえば、うまくいかないと宣言されていますが、有効なすべてのファイルを次のようにリストしたいと思いますa3a("a1" "a2" "a3*")("a1" "a2" a3*)表現するそしてひも? )、しかし、より良い方法がありますか?

#/usr/bin/env bash

touch a1 a2 a31 a32

# list files starting with a3

a=("a1" "a2" "a3*") # fails
a=("a1" "a2" a3*) # works

ls "${a[@]}"

rm a1 a2 a31 a32

答え1

Bashでは、同じ「単語」内で異なる引用符を組み合わせることができるため、引用符なしの文字列も使用できますa=("a1" "a2" "a3"*)。たとえば、aにインポートすると、prefix=a単にa=("${prefix}1" "${prefix}2" "${prefix}3"*)

関連情報