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
    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
    3. 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....