Respuestas:
Simplemente deje que se expanda dentro del lado derecho de una declaración de matriz:
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
Tenga en cuenta que la opción de shell nullglobdebe establecerse.
No está configurado por defecto.
Evita un error en caso de que el globo (o uno de varios globos) no coincida con ningún nombre.
Configúralo bashcon
shopt -s nullglob
o zshcon
setopt nullglob
unsetopty el mismo parámetro utilizado para setopt.
No es necesario complicar demasiado las cosas:
echo your/stuff*
TEST=$(echo your/stuff*) && eval \"$TEST\"saldrá:your/stuff*: No such file or directory
TESTvariable como una cadena que incluye *y no se expande.
*.