Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/10/2011, 12h45   #1
Candidat au titre de Membre du Club
 
Femme
Enseignant Chercheur
Inscription : septembre 2011
Messages : 59
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Tunisie

Informations professionnelles :
Activité : Enseignant Chercheur
Secteur : Enseignement

Informations forums :
Inscription : septembre 2011
Messages : 59
Points : 10
Points : 10
Par défaut problème script shell

bonjour à tous
je voudrais svp vous demander de m'aider à terminer mon script, je me connais nullement en programmation shell et j'ai besoin d'urgence d'un script pour résoudre un petit problème , donc j'ai voulu procéder ligne par ligne et l'essayer à chaque fois
pour commencer je vais juste faire appel à deux codes, le 1er générant un fichier contenant n lignes entrées en paramètre avec un nombre aléatoire devant et le deuxième idem va générer deux fichiers , le problème c que je voulais mettre une boucle for dans le script pour me générer plusieurs instances de fichiers et sauvegarder chacune dans le répertoire courant mais ça à l'air de se planter , ça me donne juste le résultat d'un calcul intermédiaire alors que j'ai pas fait appel à echo puis se plante, crée un seul fichier de chaque mais vide !!
voilà le code

Code :
1
2
3
4
5
6
7
8
[mayoura@mayoura final]$ for i in `seq 500 505`; do gcc generateur_de_taches.c; ./a.out $i tache$i.txt; gcc generateur_de_machine.c; m= expr $i '*' 5 / 100; ./a.out $m  machine$i perf$i; done
25
^C
[mayoura@mayoura final]$ for i in `seq 1 40`; do gcc generateur_de_taches.c; ./a.out $i tache$i.txt; gcc generateur_de_machine.c; m= expr $i '*' 5 / 100>f$i ; ./a.out $m  machine$i perf$i; done
expr: erreur de syntaxe
^C
[mayoura@mayoura final]$ for i in `seq 1 40`; do gcc generateur_de_taches.c; ./a.out $i tache$i.txt; gcc generateur_de_machine.c; m= expr $i '*' 5 / 100 ; ./a.out $m  machine$i perf$i; done
0
merci d'avance
j'attends votre aide impatiemment
ben_tiba_asma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 12h58   #2
Membre Expert
 
Avatar de jabbounet
 
frederic frances
Inscription : juin 2009
Messages : 1 703
Détails du profil
Informations personnelles :
Nom : frederic frances
Âge : 36

Informations forums :
Inscription : juin 2009
Messages : 1 703
Points : 2 115
Points : 2 115
1: inutile de générer plusieurs fois ton programme avec GCC
2: l'option -o est vachement utile avec gcc elle te permet de donnée un nom a ton programme.

Tu peux faire un truc du style:
Code :
1
2
3
4
5
6
7
8
 
gcc -c  -WAll generateur_de_taches.c   -o generateur_tache
gcc -c  -WAll generateur_de_machine.c -o generateur_machine
for i in `seq 500 505`
do
    ./generateur_tache  $i tache$i.txt
    ./generateur_machine $(( $i * 5 / 100 ))  machine$i perf$i
done
Note: fait sans compilateur/shell sous la main donc contiens potentiellement des erreurs.

Une façon plus évolué est d'utiliser un makefile pour générer tes programmes uniquement si besoin.

exemple (remplacer -> par des tabulation la syntaxe des makefile l'exige):
Code Makefile.mk :
1
2
3
4
5
6
7
8
 
all: generateur_tache generateur_machine
 
generateur_tache: generateur_de_taches.c
->gcc -c  -WAll generateur_de_taches.c   -o generateur_tache
 
generateur_machine: generateur_de_machine.c 
->gcc -c  -WAll generateur_de_machine.c -o generateur_machine

Code :
1
2
3
4
5
6
7
 
make -f Makefile.mk all
for i in `seq 500 505`
do
    ./generateur_tache  $i tache$i.txt
    ./generateur_machine $(( $i * 5 / 100 ))  machine$i perf$i
done
__________________
BAZAR est un joyeux bordel improvisé ! Tous les mardis.
http://www.improetcompagnie.com/publ...ctacles-6.html

Citation:
Envoyé par Isaac Asimov
Pour réussir, il ne suffit pas de prévoir. Il faut aussi savoir improviser
Pour les utilisateurs d'emacs:
http://www.emacswiki.org/

Attends de voir ce qui vas sortir de:
http://www.pushmid.com
jabbounet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 13h56   #3
Candidat au titre de Membre du Club
 
Femme
Enseignant Chercheur
Inscription : septembre 2011
Messages : 59
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Tunisie

Informations professionnelles :
Activité : Enseignant Chercheur
Secteur : Enseignement

Informations forums :
Inscription : septembre 2011
Messages : 59
Points : 10
Points : 10
re bonjour
je suis vraiment désolée j'ai eu un problème de connexion , ça vient juste de se rétablir
j’essaie les solutions et je reviens , merci infiniment d'avoir répondu si rapidement
je suis vraiment désolée mais ça passe pas
comme je l'ai déjà mentionné je suis pas trop calée en shell ni en Linux d'ailleurs mais obligée de travailler avec
et là j'ai pas vraiment compris comment procéder pour le makefile
Code :
1
2
3
4
5
6
7
8
9
10
11
[mayoura@mayoura final]$ all: generateur_tache generateur_machine
bash: all:: commande inconnue...
[mayoura@mayoura final]$  
[mayoura@mayoura final]$  
[mayoura@mayoura final]$ all: generateur_tache generateur_machine
bash: all:: commande inconnue...
[mayoura@mayoura final]$  
[mayoura@mayoura final]$ generateur_tache: generateur_de_taches.c
bash: generateur_tache:: commande inconnue...
[mayoura@mayoura final]$ ->gcc -c  -WAll generateur_de_taches.c   -o generateur_tache
bash: -: commande inconnue...
ben_tiba_asma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 18h02   #4
Membre Expert
 
Avatar de jabbounet
 
frederic frances
Inscription : juin 2009
Messages : 1 703
Détails du profil
Informations personnelles :
Nom : frederic frances
Âge : 36

Informations forums :
Inscription : juin 2009
Messages : 1 703
Points : 2 115
Points : 2 115
comme dit dans mon post précédent il faut remplacer '->' par des tabulation


Un fichier makefile se lance avec la commande make, le tutoriel est ici:
http://gl.developpez.com/tutoriel/outil/makefile/
__________________
BAZAR est un joyeux bordel improvisé ! Tous les mardis.
http://www.improetcompagnie.com/publ...ctacles-6.html

Citation:
Envoyé par Isaac Asimov
Pour réussir, il ne suffit pas de prévoir. Il faut aussi savoir improviser
Pour les utilisateurs d'emacs:
http://www.emacswiki.org/

Attends de voir ce qui vas sortir de:
http://www.pushmid.com
jabbounet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 18h12   #5
Candidat au titre de Membre du Club
 
Femme
Enseignant Chercheur
Inscription : septembre 2011
Messages : 59
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Tunisie

Informations professionnelles :
Activité : Enseignant Chercheur
Secteur : Enseignement

Informations forums :
Inscription : septembre 2011
Messages : 59
Points : 10
Points : 10
merci c'est bon :-)
j'y suis arrivée
c’était très gentil de ta part :-)
bonne continuation
ben_tiba_asma est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h48.


 
 
 
 
Partenaires

Hébergement Web