Petit script shell sous linux

mr_poussy Messages postés 2740 Statut Modérateur -  
jisisv Messages postés 3678 Statut Modérateur -
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. jisisv Messages postés 3678 Statut Modérateur 936
     
    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
  2. mr_poussy Messages postés 2740 Statut Modérateur 61
     
    y a personne qui sait ??
    0
  3. jisisv Messages postés 3678 Statut Modérateur 936
     
    D'abord c'est dans quel langage ton script ?

    Gates gave us the windows.
    Linux gave us the whole house....
    0
  4. jisisv Messages postés 3678 Statut Modérateur 936
     
    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....
    0
    1. mr_poussy Messages postés 2740 Statut Modérateur 61
       
      merci merci

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

      je vais essayer
      0
    2. mr_poussy Messages postés 2740 Statut Modérateur 61
       
      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 ?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mr_poussy Messages postés 2740 Statut Modérateur 61
     
    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 ;)
    0
    1. mat
       
      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
      0