Une question sur la boucle for

Résolu/Fermé
raygouda Messages postés 69 Date d'inscription mardi 17 mai 2011 Statut Membre Dernière intervention 27 août 2013 - 13 mai 2012 à 16:32
raygouda Messages postés 69 Date d'inscription mardi 17 mai 2011 Statut Membre Dernière intervention 27 août 2013 - 13 mai 2012 à 22:48
Bonjour, à tous
Voici un code que je viens de voir sur le net:
#!/bin/sh
#Fichier "liste"
for element in *
     do echo "$element"
done


Ce code affiche les noms des fichiers du répertoire courant un par ligne.

Mon problème est de savoir:
1- quel est la signification de * dans la boucle for?
2-#Fichier "liste" c'est un commentaire ou sa un sens dans le programme?

Merci.



A voir également:

1 réponse

salut,

* n'est pas spécifique à la boucle for.
on obtiendrait le même résultat avec
printf '%s\n' *
* est un caractère spécial qui correspond à plusieurs caractères, ou aucun.
alors que ? correspond à un seul caractère.

Attention, si le répertoire est vide, le caractère spécial sera affiché littéralement.

Ce comportement peut être inhibé dans bash en mettant sur 'on' l'option 'nullglob' avec 'shopt'.

Dans ksh?


# introduit un commentaire.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
13 mai 2012 à 18:42
Salut,

* est un caractère spécial qui correspond à plusieurs caractères, ou aucun.
alors que ? correspond à un seul caractère.

Pour être exact, l'astérisque (*) correspond à aucun, un ou plusieurs caractères. :-))
0
raygouda Messages postés 69 Date d'inscription mardi 17 mai 2011 Statut Membre Dernière intervention 27 août 2013 1
13 mai 2012 à 22:48
merci
0