Une question sur la boucle for

Résolu
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.

1 réponse

  1. 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.
    1. Contributeur
      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. :-))
    2. merci