Rechercher : dans
Par :

Petit script shell sous linux

Dernière réponse le 15 mai 2002 à 12:17:18 mr_poussy, le 14 mai 2002 à 18:48:57 
 Signaler ce message aux modérateurs

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

1

mr_poussy, le 15 mai 2002 à 08:38:32

Y a personne qui sait ?? mr poussy

Répondre à mr_poussy

2

jisisv, le 15 mai 2002 à 09:35:02

D'abord c'est dans quel langage ton script ?

Gates gave us the windows.
Linux gave us the whole house....

Répondre à jisisv

3

jisisv, le 15 mai 2002 à 09:37:48

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

Répondre à jisisv

4

mr_poussy, le 15 mai 2002 à 09:49:35

Merci merci

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

je vais essayer mr poussy

Répondre à mr_poussy

5

mr_poussy, le 15 mai 2002 à 09:59:34

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 ? mr poussy

Répondre à mr_poussy

6

mr_poussy, le 15 mai 2002 à 10:15:42

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 ;) mr poussy

Répondre à mr_poussy

7

mat, le 15 mai 2002 à 10:39:00

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

Répondre à mat

8

 jisisv, le 15 mai 2002 à 12:17:18
  • +2

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

Répondre à jisisv