IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

encore un problème de script


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Points : 25
    Points
    25
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 556
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 556
    Points : 19 396
    Points
    19 396
    Par défaut
    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'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    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?

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 556
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 556
    Points : 19 396
    Points
    19 396
    Par défaut
    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'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    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

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 556
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 556
    Points : 19 396
    Points
    19 396
    Par défaut
    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'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    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

  8. #8
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 556
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 556
    Points : 19 396
    Points
    19 396
    Par défaut
    bon, alors étant donné que c'est du bash, utilise des tableaux
    ...
    ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    comment ça des tableaux?

  10. #10
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 556
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 556
    Points : 19 396
    Points
    19 396
    Par défaut
    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    printf '%s\n' "${tableau[@]}"
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  11. #11
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    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

  12. #12
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 556
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 556
    Points : 19 396
    Points
    19 396
    Par défaut
    non, tu ne l'insères pas telle quelle, c'était pour te montrer un peu comment fonctionne un tableau en bash.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  13. #13
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    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

  14. #14
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    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

  15. #15
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    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

  16. #16
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 813
    Points
    30 813
    Par défaut
    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
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  17. #17
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    ah désolée il est en haut du sujet, je le recopies :-)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  18. #18
    Membre confirmé Avatar de cboudy
    Profil pro
    Ingénieur informatique industrielle
    Inscrit en
    Avril 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique industrielle
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 406
    Points : 616
    Points
    616
    Par défaut
    c'est normal que ton script soit tout sur la même ligne ? parce que là c'est un peu illisible ...

  19. #19
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    voilà le code en plus clair :-)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  20. #20
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Encore des problèmes avec le BDE
    Par Flint dans le forum C++Builder
    Réponses: 19
    Dernier message: 31/12/2007, 23h26
  2. [MS-DOS] Problème avec Script
    Par bliml dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 24/05/2005, 13h52
  3. [DOS] Problème de script bat
    Par Philzegore dans le forum Windows
    Réponses: 3
    Dernier message: 04/04/2005, 12h35
  4. Réponses: 8
    Dernier message: 10/08/2004, 11h49
  5. Encore un probléme de date avec TADO !
    Par bNoureddine dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/02/2004, 18h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo