回答:
配列宣言の右側に展開するだけです:
list=(../smth*/) # grab the list
echo "${#list[@]}" # print array length
echo "${list[@]}" # print array elements
for file in "${list[@]}"; do echo "$file"; done # loop over the array
シェルオプションnullglobを設定する必要があることに注意してください。
デフォルトでは設定されていません。
グロブ(または複数のグロブの1つ)がどの名前とも一致しない場合のエラーを防ぎます。
それを設定するbashと
shopt -s nullglob
または中zshで
setopt nullglob
unsetoptおよびに使用したのと同じパラメーターsetopt。
物事を過度に複雑にする必要はありません。
echo your/stuff*
TEST=$(echo your/stuff*) && eval \"$TEST\"意志出力:your/stuff*: No such file or directory
TEST文字列として変数を評価しています*。
*。