Petit script shell sous linux

voila une petite parti de mon script de test

foreach sourcefile (/home/moi/image/*.jpg)
echo sourcefile

et ce con me dit :
syntaxe error near unexpected token '(/'

grrr!!!

bon oki chui novice en shell machin mais kes qu'il veut ??

--
mr poussy

5 réponses

  1. Modérateur
    Pour parcourir une arborescence de fichiers, utilise la commande find ( ENORMEMENT d'options)
    exemple sous bash
    #!/bin/bash
    function mamanip(){
    [ "$1X" != "X" ] && file $1
    }

    OLDIFS=$IFS
    #on utilise : comme séparateur
    # $1 est le paramètre du script , normalement le nom d'un répertoire
    LIST=$(find $1 -type f -printf "%p:" )

    # éviter les espaces dans les noms de fichiers le caractère ":" normalement pas
    # conseilé dans les noms de fichier UNIX
    IFS=":"
    for file in $LIST ; do
    mamanip $file
    done
    # rétablir IFS
    IFS=$OLDIFS

    Gates gave us the windows.
    Linux gave us the whole house....
    1. Modérateur
      D'abord c'est dans quel langage ton script ?

      Gates gave us the windows.
      Linux gave us the whole house....
      1. Modérateur
        En bash, essaye quelque chose du genre

        #!/bin/bash
        for myfile in images/* ; do
        echo $myfile;
        done

        Gates gave us the windows.
        Linux gave us the whole house....
        1. Modérateur
          merci merci

          mais c en sh enfin je crois que c assez proche du bash.

          je vais essayer
        2. Modérateur
          de plus je dois manipuler chaque fichier du rep les uns apres les autres c pour ca que j'utilise la fonction 'foreach'

          c justifier non ?

          il y a une erreur de syntaxe ds mes ligne de commandes ?
      2. Modérateur
        ca y est ca marche

        je n'avais pas defini le bon shell

        il fallait que j'ecrive

        #!/bin/tcsh

        c tout :)

        hala le nul que je suis ;)
        1. salut,

          en général ton script commence par #!/bin/sh sachant que "sh" n'est qu'un lien vers ton programme shell: bash, tcsh, csh ...

          a+
          mat