Comment vérifier l’existence d’un fichier à l’aide d’un caractère générique dans le shell Bourne?

Ce que je recherche, c’est quelque chose comme:

if [ -f "filenam*" ]; then ... fi 

Mais le caractère générique (*) pose problème.

J’ai aussi essayé:

 if [ `ls filenam* > /dev/null 2>&1` ]; then ... fi 

Ce qui peut fonctionner dans d’autres shells mais ne semble pas fonctionner dans le shell Bourne (sh).

Merci pour toute aide!

EDIT: Désolé, pas le shell C, Bourne shell (sh).

Plutôt que d’utiliser test -n $(ls filenam*) , vous préférerez peut-être:

 if ls filenam* 2> /dev/null | grep . > /dev/null; then ... fi 

Puisque ceci est basé sur C, vous avez probablement besoin de la commande glob:

 ls `glob filenam*` 

Vous étiez sur la bonne voie. Essaye ça:

 if [ ! -z `ls filenam*` ] ; then ... fi 

Cela vérifiera si ls renvoie quelque chose.

J’aime ça:

 function first() { echo "$1" ; } [ -e $(first filenam*) ] && echo "yes" || echo "no" 

Comme csh, qu’en est-il de:

 foreach i (`ls -d filenam*`) ... end