Simple Bash - for f in *

Considérer cette simple boucle:

for f in *.{text,txt}; do echo $f; done

Je veux echo SEULEMENT des noms de fichier valide. Utilisez la fonction $f variable dans un script tout fonctionne très bien, sauf si il ne sont pas tous les fichiers d'extension. Dans le cas d'un ensemble vide, $f est définie sur *.le texte et la ligne ci-dessus echos:

*.text
*.txt

plutôt que d'en écho à rien. Cela crée une erreur si vous essayez d'utiliser $f pour tout ce qui est en attente d'une vrai nom de fichier et la place devient *.

S'il y a des fichiers qui correspondent au générique de sorte qu'il n'est pas un ensemble vide, tout fonctionne comme je le voudrais. par exemple,

123.text
456.txt
789.txt

Comment puis-je le faire sans erreurs et sans apparence de la complexité excessive de la première correspondance de chaîne $f pour un astérisque?

InformationsquelleAutor user1610022 | 2012-09-07