[SH] Boucle For Dossier/Fichiers

ZZ2F3 Messages postés 40 Date d'inscription   Statut Membre -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je voudrais avoir un petit peu d'aide quant à mon soucis en Shell.

Je voudrais faire une boucle sur des noms de fichiers contenus dans un dossier connu. Ce dossier ne contient que des fichiers à traiter et en contient forcément.

Est-il possible de faire une boucle sur les fichiers du genre :

Pour chaque fichier du dossier /home/zz2f3... Faire :
Blablabla

Je viens de penser à une éventuelle solution:
Serait-il possible de stocker le résultat de la commande ls sur ce dossier dans une variable (ou un tableau?) pour pouvoir utiliser ces noms de fichiers par la suite?

Merci d'avance à ceux qui prendront le temps (et la peine^^) de me répondre!

Bonne fin de journée.
Configuration: Windows XP
Firefox 2.0.0.14

3 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    ce n'est pas une syntaxe csh, mais sh, ksh ou bash
    remplacer la première ligne par #!/bin/bash ou #!/bin/ksh
    3
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    [tmpfs]$ ls
    rep/
    
    [tmpfs]$ tree
    .
    `-- rep
        |-- fich1.txt
        |-- fich2.txt
        |-- fich3.txt
        |-- fich4.txt
        |-- fich5.txt
        |-- fich6.txt
        |-- fich7.txt
        |-- fich8.txt
        `-- fich9.txt
    
    1 directory, 9 files
    
    [tmpfs]$ for fich in rep/*; do echo "fichier trouvé dans le répertoire \"rep\" : " $(basename $fich); done
    fichier trouvé dans le répertoire "rep" :  fich1.txt
    fichier trouvé dans le répertoire "rep" :  fich2.txt
    fichier trouvé dans le répertoire "rep" :  fich3.txt
    fichier trouvé dans le répertoire "rep" :  fich4.txt
    fichier trouvé dans le répertoire "rep" :  fich5.txt
    fichier trouvé dans le répertoire "rep" :  fich6.txt
    fichier trouvé dans le répertoire "rep" :  fich7.txt
    fichier trouvé dans le répertoire "rep" :  fich8.txt
    fichier trouvé dans le répertoire "rep" :  fich9.txt
    
    [tmpfs]$  
    ;-))
    0
  3. ZZ2F3 Messages postés 40 Date d'inscription   Statut Membre
     
    Bonjour,

    Désolé de la réponse tardive mais j'ai du faire face à d'autres problèmes désormais résolus en attendant depouvoir tester cette solution.
    Malheureusement je n'obtiens pas de résultats mais plutot des erreurs :

    > ess
    Swarm 2.2 (CVS 20060612)
    Mon Jul 14 15:02:11 BST 2008
    NOTICE: Invoking /software/sunstudio11/SUNWspro/bin/f90 -f77 -ftrap=%none fich in /home/rb6141/30june/Essai/essai1 /home/rb6141/30june/Essai/essai2 /home/rb6141/30june/Essai/essai3 /home/rb6141/30june/Essai/essai4 /home/rb6141/30june/Essai/essai5
    ld: fatal: file fich: open failed: No such file or directory
    ld: fatal: file in: open failed: No such file or directory
    ld: fatal: file /home/rb6141/30june/Essai/essai1: unknown file type
    ld: fatal: File processing errors. No output written to a.out
    fich: Undefined variable



    Mon script est seulement :
    #!/usr/bin/csh
    
    for fich in /home/rb6141/30june/Essai/*; do echo "fichier trouvé dans le répertoire Essai : " $fich; done
    
    


    Le contenu de ce dossier /home/rb6141/30june/Essai est 5 fichiers essai&, essai2, essai3, essai4, essai5.

    Merci d'avance =)

    Bonne journée en ce 14 juillet!
    0