• # ls et globbing

    Posté par . En réponse à la dépêche Revue des techniques de programmation en shell. Évalué à 5.

    En bref la règle d'or est que la commande ls sert uniquement pour l'utilisation interactive du shell, dans le cas d'un script shell, on utilise soit le globbing soit la commande find en conjonction avec xargs.

    for file in *; do
     printf '%s\n' "$file"
    done

    C'est moyen, comme "règle d'or".
    Cette boucle dans un répertoire vide va te renvoyer '*' comme nom de fichier. De même si le masque du globbing n'a aucune correspondance, c'est le masque lui même qui est renvoyé. Ce qui oblige à tester la nature du retour. La forme $(ls * 2>/dev/null) par contre est moche, mais pas piégeuse.