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 23/10/2011, 19h54   #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 encore un problème de script

bonsoir à tous
je galère toujours avec mon script
ça me donne des erreurs que j'arrive pas à contourner
quelqu'un aurait une solution svp
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
[mayoura@mayoura final]$ for i in `seq 500 505`; do  ./generateur_tache  $i tache$i.txt; nprocs=$i; copt$i=`cat tache$i.txt | ./copt.awk` ;  ./generateur_machine $(( $i * 5 / 100 )) $copt$i machine$i  perf$i ;clpt$i=`./lpt $i $(( $i * 5 / 100 ))`;./gensched -t tache$i.txt -m machine$i -p perf$i -b 0 -g D -h D -o progdyn$i ;  cmax$i=`cat progdyn$i | ./cmax.awk`; echo `expr $clpt$i - $copt$i`" "`expr $cmax$i - $copt$i`  ; done
bash: copt500=75.102: commande inconnue...
bash: clpt500=la: commande inconnue...
Invalid performance file
cat: progdyn500: Aucun fichier ou dossier de ce type
bash: cmax500=0: commande inconnue...
expr: erreur de syntaxe
expr: argument non entier
 
bash: copt501=75.501: commande inconnue...
bash: clpt501=la: commande inconnue...
Invalid performance file
cat: progdyn501: Aucun fichier ou dossier de ce type
bash: cmax501=0: commande inconnue...
expr: erreur de syntaxe
expr: argument non entier
 
bash: copt502=75.5538: commande inconnue...
bash: clpt502=la: commande inconnue...
Invalid performance file
cat: progdyn502: Aucun fichier ou dossier de ce type
bash: cmax502=0: commande inconnue...
expr: erreur de syntaxe
expr: argument non entier
 
bash: copt503=77.0318: commande inconnue...
bash: clpt503=la: commande inconnue...
Invalid performance file
cat: progdyn503: Aucun fichier ou dossier de ce type
bash: cmax503=0: commande inconnue...
expr: erreur de syntaxe
expr: argument non entier
 
bash: copt504=77.0278: commande inconnue...
bash: clpt504=la: commande inconnue...
Invalid performance file
cat: progdyn504: Aucun fichier ou dossier de ce type
bash: cmax504=0: commande inconnue...
expr: erreur de syntaxe
expr: argument non entier
 
bash: copt505=74.9188: commande inconnue...
bash: clpt505=la: commande inconnue...
Invalid performance file
cat: progdyn505: Aucun fichier ou dossier de ce type
bash: cmax505=0: commande inconnue...
expr: erreur de syntaxe
expr: argument non entier
merci d'avance
ben_tiba_asma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2011, 22h24   #2
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 071
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 071
Points : 4 154
Points : 4 154
Bonjour,

copt$i est une variable à declarer, parceque son nom est composé avec une autre variable.
Mais est-il nécessaire de créer une telle variable ?
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/10/2011, 22h31   #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
bonsoir
mais les points virgules c'est parce qu'ils sont sur la même ligne c'est tout et ça fonctionnait avant d'jouter les dernieres retouches :-(
c'est bien expr là où ça bloque suivant les messages d'erreurs non?
ben_tiba_asma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2011, 22h34   #4
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 071
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 071
Points : 4 154
Points : 4 154
Citation:
bash: copt500=75.102: commande inconnue...
j'ai édité mon message précédent quand j'ai compris qu'il s'agit d'une variable.
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/10/2011, 22h52   #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
oui c'est parce que c'est une variable intermédiaire à calculer à partir du premier fichier générer et à utiliser dans celui d'après
en plus même le résultat donné est faut alors que je suis sure de mes codes parce que chacun exécuté à part me donne un résultat correct
ben_tiba_asma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2011, 23h24   #6
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 071
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 071
Points : 4 154
Points : 4 154
elles ne te servent plus en dehors de la boucle, donc leurs valeurs peuvent être écrasées lors de chaque boucle, donc leurs noms peuvent être constants !

que ce soit copt500, copt501..., ou simplement copt ne devrait pas changer le comportement de la boucle, étant donné que la valeur de cette variable est écrasée à chaque boucle (je radote ?).
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/10/2011, 23h33   #7
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
et ben justement il faut pas qu’elles s"écrasent les unes les autres parce qu'à la fin je devrais en extraire une courbe pour chaque variable copt, clpt et cmax
ben_tiba_asma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2011, 23h38   #8
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 071
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 071
Points : 4 154
Points : 4 154
bon, alors étant donné que c'est du bash, utilise des tableaux
...
?
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/10/2011, 23h41   #9
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
comment ça des tableaux?
ben_tiba_asma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2011, 23h49   #10
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 071
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 071
Points : 4 154
Points : 4 154
par exemple :
Code :
1
2
3
i=500
tableau[i]=$(./copt.awk tache$i.txt)
echo "${tableau[i]}"
et quand la boucle est finie tu peux voir toutes les valeurs :
Code :
printf '%s\n' "${tableau[@]}"
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/10/2011, 00h00   #11
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
je l'insère dans la boucle?
mais apparemment chez moi tout le probème vient de expr non pas de la variable copt non?
parce que comme je l'ai déjà dit j'ai déjà essayé le script avant d'ajouter les dernières lignes avec le expr et ça fonctionnait correctement même pour le copt , ça me donnait les différentes valeurs et correctes
ben_tiba_asma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2011, 00h12   #12
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 071
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 071
Points : 4 154
Points : 4 154
non, tu ne l'insères pas telle quelle, c'était pour te montrer un peu comment fonctionne un tableau en bash.

Code :
1
2
3
$ var="peuImporte"
$ ma$var="foo bar baz"
bash: mapeuImporte=foo bar baz : commande introuvable
c'est la même erreur que dans ton script.

alors qu'ainsi ça fonctionne
Code :
1
2
3
4
5
 
$ declare ma$var="foo bar baz"
$ maBelleVariable="ma$var"
$ echo "${!maBelleVariable}"
foo bar baz
mais c'est un peu lourdingue.
tu devrais utiliser des tableaux.
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/10/2011, 00h26   #13
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
ok merci
je vais essayer , j'espère te retrouver encore connecté si jamais ça bloque toujours ;-)
à plus
et merci encore une fois pour ce temps
ben_tiba_asma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2011, 19h47   #14
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
j'y arrive toujours pas mais bon je mettrais résolu pour le sujet parce que je suis pas sure de pouvoir me connecter prochainement
merci encore une fois
ben_tiba_asma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 16h05   #15
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
je remonte le même sujet
je galère depuis déjà une semaine avec ce script et j'ai toujours pas trouvé de solutions
auriez vous svp une autre solution à part les tableaux
d'ailleurs le script me génère des fichiers que j'ai pas demandé ce qui est bien bizarre
merci de votre aide et surtt votre compréhension
ben_tiba_asma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 17h13   #16
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 446
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 446
Points : 7 547
Points : 7 547
Montre nous ton script, ce sera plus facile pour t'aider.
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 18h48   #17
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
ah désolée il est en haut du sujet, je le recopies :-)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
[mayoura@mayoura final]$ for i in `seq 500 505`; do  ./generateur_tache  $i tache$i.txt; nprocs=$i; copt$i=`cat tache$i.txt | ./copt.awk` ;  ./generateur_machine $(( $i * 5 / 100 )) $copt$i machine$i  perf$i ;clpt$i=`./lpt $i $(( $i * 5 / 100 ))`;./gensched -t tache$i.txt -m machine$i -p perf$i -b 0 -g D -h D -o progdyn$i ;  cmax$i=`cat progdyn$i | ./cmax.awk`; echo `expr $clpt$i - $copt$i`" "`expr $cmax$i - $copt$i`  ; done
bash: copt500=75.102: commande inconnue...
bash: clpt500=la: commande inconnue...
Invalid performance file
cat: progdyn500: Aucun fichier ou dossier de ce type
bash: cmax500=0: commande inconnue...
expr: erreur de syntaxe
expr: argument non entier
 
bash: copt501=75.501: commande inconnue...
bash: clpt501=la: commande inconnue...
Invalid performance file
cat: progdyn501: Aucun fichier ou dossier de ce type
bash: cmax501=0: commande inconnue...
expr: erreur de syntaxe
expr: argument non entier
 
bash: copt502=75.5538: commande inconnue...
bash: clpt502=la: commande inconnue...
Invalid performance file
cat: progdyn502: Aucun fichier ou dossier de ce type
bash: cmax502=0: commande inconnue...
expr: erreur de syntaxe
expr: argument non entier
 
bash: copt503=77.0318: commande inconnue...
bash: clpt503=la: commande inconnue...
Invalid performance file
cat: progdyn503: Aucun fichier ou dossier de ce type
bash: cmax503=0: commande inconnue...
expr: erreur de syntaxe
expr: argument non entier
 
bash: copt504=77.0278: commande inconnue...
bash: clpt504=la: commande inconnue...
Invalid performance file
cat: progdyn504: Aucun fichier ou dossier de ce type
bash: cmax504=0: commande inconnue...
expr: erreur de syntaxe
expr: argument non entier
 
bash: copt505=74.9188: commande inconnue...
bash: clpt505=la: commande inconnue...
Invalid performance file
cat: progdyn505: Aucun fichier ou dossier de ce type
bash: cmax505=0: commande inconnue...
expr: erreur de syntaxe
expr: argument non entier
merci d'avance
ben_tiba_asma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 21h44   #18
Membre expérimenté
 
Avatar de cboudy
 
Ingénieur informatique industrielle
Inscription : avril 2006
Messages : 382
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Ingénieur informatique industrielle

Informations forums :
Inscription : avril 2006
Messages : 382
Points : 526
Points : 526
c'est normal que ton script soit tout sur la même ligne ? parce que là c'est un peu illisible ...
cboudy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 11h59   #19
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
voilà le code en plus clair :-)
Code :
1
2
3
4
5
6
7
8
9
10
11
[mayoura@mayoura final]$ for i in `seq 500 505`
 do 
	 ./generateur_tache  $i tache$i.txt
	 eval nprocs=$i
	 eval copt$i=`cat tache$i.txt | ./copt.awk` 
	  ./generateur_machine $(( $i * 5 / 100 )) $copt$i machine$i  perf$i
	 eval  clpt$i=`./lpt $i $(( $i * 5 / 100 ))` 
	 ./gensched -t tache$i.txt -m machine$i -p perf$i -b 0 -g D -h D -o progdyn$i 
	 eval cmax$i=`cat progdyn$i | ./cmax.awk`
	 echo ` $clpt$i - $copt$i`" "` $cmax$i - $copt$i`  
 done
ben_tiba_asma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 21h31   #20
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
voilà le code avec des commentaires pour plus de détails, après quelques rectification , ça me donne plus d'erreurs mais plutôt à l'aire d'entrer en boucle infinie, ça n’exécute plus rien
Code :
1
2
3
4
5
6
7
8
9
10
11
for i in `seq 500 505`;
 do ./generateur_tache  $i tache$i.txt; # va generer un fichier nommé tachei.txt de i taches , i lignes chaque ligne comporte le le n° de la tache et la durée d exécution 
   eval nprocs=$i; # une variable à utiliser dans copt.aw
 export nprocs; 
 eval copt$i=`cat tache$i.txt | ./copt.awk` ; # va calculer copt ; une var à utiliser dans le code suivant
   ./generateur_machine $(( $i * 5 / 100 )) $copt$i machine$i  perf$i ; # va générer 2 fichiers nommés machine et perf ,contenant les machines qui vont exécuter les taches avec respectivement leurs indisponibilités,le 2eme fichier contient les performances de chaque machine, les deux 1ers paramètres passés sont le nombre de machines et la var copt calculée précédemment 
  eval  clpt$i=`./lpt $i $(( $i * 5 / 100 ))` ;  #va générer un ordonnancement suivant l'algorithme LPT, la var clpt est extraite,
 ./gensched -t tache$i.txt -m machine$i -p perf$i -b 0 -g D -h D -o progdyn$i ;   #va générer un ordonnancement suivant suivant une programmation dynamique,
 eval cmax$i=`cat progdyn$i | ./cmax.awk`; 
 echo ` $clpt$i - $copt$i`" "` $cmax$i - $copt$i`  ;
 done
merci d'avance
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 11h43.


 
 
 
 
Partenaires

Hébergement Web