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 :

modification de programme .pc sous unix


Sujet :

Shell et commandes GNU

  1. #21
    Membre régulier Avatar de gege87270
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Mai 2007
    Messages : 224
    Points : 76
    Points
    76
    Par défaut
    J'utilise AIX

    Et quand je lance le script sh, il ne se passe rien. J'ai attendu un peu plus d'une minute et j'ai fait ^c.

    Voilà ce que j'entend par bouclé

  2. #22
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Il ne boucle donc pas, il ne fait rien. C'est à dire qu'il attend une entrée au clavier vu que tu ne lui passes pas de fichier à traiter.

    Corrige ton script comme je l'ai indiqué dans mon post précédent.

  3. #23
    Membre régulier Avatar de gege87270
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Mai 2007
    Messages : 224
    Points : 76
    Points
    76
    Par défaut
    J'ai apporté les modifs suivantes :
    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
    for file in test.pc
    do
      cp $test.pc $test.org
      awk '
    /#include <gestimpr.h>/ {
      print $0
      print "#include <userprog.h>"
      next
    }
    /EXEC SQL INCLUDE sqlca.h;/ {
      print $0
      print "EXEC SQL INCLUDE bmtmain.h;"
      next
    }
    /char TcSortie[80];/ {
      print $0
      print "char lib_err1[2000];"
      next
    }
    /EXEC SQL BEGIN DECLARE SECTION;/ {
      print $0
      print "VARCHAR sessionid[21],"
      print "lib-err[2000],"
      print "paragraphe_err[80];"
      print "int cd_ret;"
      next
    }
    {
      print $0
    }
    ' $file.org > $file
    done
    et j'ai maintenant l'erreur suivante

    imprÚvu.wk.sh: 0403-057 Erreur de syntaxe. ligne 3 : `do

  4. #24
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 129
    Points
    28 129
    Par défaut
    Bonjour,

    Quel shell utilises-tu ? Est-ce que ce shell comporte une instruction for qui s'écrit comme tu le fais ?

    Par ailleurs, tu as un problème au début de ton script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for file in test.pc
    do
      cp $test.pc $test.org
    Ta variable n'est pas $test.pc, mais $file

  5. #25
    Membre régulier Avatar de gege87270
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Mai 2007
    Messages : 224
    Points : 76
    Points
    76
    Par défaut
    En fait j'ai repris tout le code

    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
    for file in test.pc
    do
      cp $file $file.org
     
      awk '
          /#include <gestimpr.h>/ {
              print $0
              getline
              if ($0 != "#include <userprog.h>") {
                  print "#include <userprog.h>"
              }
              print $0
              next
          }
          /EXEC SQL INCLUDE sqlca.h;/ {
              print $0
              getline
              if ($0 != "EXEC SQL INCLUDE bmtmain.h;") { 
                  print "EXEC SQL INCLUDE bmtmain.h;"
              }
              print $0
              next
          }
      {
      print $0
      }
      ' $file.org > $file
    done
    Je le réexecute mais j'ai toujours la même erreur

  6. #26
    Membre régulier Avatar de gege87270
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Mai 2007
    Messages : 224
    Points : 76
    Points
    76
    Par défaut
    Et j'utilise KSH

  7. #27
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Rajoute
    au début de ton script et relance le.

  8. #28
    Membre régulier Avatar de gege87270
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Mai 2007
    Messages : 224
    Points : 76
    Points
    76
    Par défaut
    J'ai rajouté la ligne au début de mon script comme tu me l'as soumis, le programme fonctionne, mais il me rajoute #include <userprog.h> après chaque ligne. En plus j'ai toujours ^M qui s'affiche en début et à la fin de chaque ligne du programme.

    Là je sais plus quoi faire.

  9. #29
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Il y a beaucoup de choses inutiles ou en double dans ce que tu as testé.

    Essaye ça, ce qui est sensiblement la même chose que ce que je t'ai déjà proposé:

    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
    for file in test.pc
    do
      cp $file $file.org
     
      awk '
    /#include <gestimpr.h>/ {
      print $0
      print "#include <userprog.h>"
      next
    }
    /EXEC SQL INCLUDE sqlca.h;/ {
      print $0
      print "EXEC SQL INCLUDE bmtmain.h;"
      next
    }
    {
      print $0
    } ' $file.org > $file
    done
    Pour ce qui concerne les ^M, le problème est ailleurs.

  10. #30
    Membre éclairé Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Points : 652
    Points
    652
    Par défaut
    les ^M signifient que ton script est au format DOS au lieu du format UNIX.
    C'est sans doute la raison des "syntax error"

    Solutions pour éliminer les ^M :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dos2unix nom_de_fichier
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tr -d '\r' < nom_de_fichier > tmp 
    mv tmp nom_de_fichier

  11. #31
    Membre régulier Avatar de gege87270
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Mai 2007
    Messages : 224
    Points : 76
    Points
    76
    Par défaut
    Merci les gars, ça fonctionne.

    Le truc c'est que j'ai pas trop compris la résolution de ^M

    Je retravaille dessus

  12. #32
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Les fichiers originaux viennent-ils d'une machine sous Windows ? Si oui, comment les transfères-tu ?

    Pour régler le problème, tu peux inclure le tr au script:

    Remplace la ligne:
    } ' $file.org > $file
    par
    } ' $file.org | tr -d '\r' > $file

  13. #33
    Membre régulier Avatar de gege87270
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Mai 2007
    Messages : 224
    Points : 76
    Points
    76
    Par défaut
    Je rédige mes scripts avec notepad++ et je les transfert par FTP avec Filezilla.

  14. #34
    Membre régulier Avatar de gege87270
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Mai 2007
    Messages : 224
    Points : 76
    Points
    76
    Par défaut
    Merci mille fois, car tout est rentré dans l'ordre. Le fait d'insérer la modif de ton dernier message m'a enlevé tous les ^M.

    J'ai fait évoluer mon script avec d'autres modif, et ça tourne très bien. J'ai mes insertions là où il faut et plus de ^M.

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Exécuter un programme C sous Unix
    Par vincent.mbg dans le forum C
    Réponses: 3
    Dernier message: 08/06/2010, 15h51
  2. programmation c sous unix HELP ME PLEASE
    Par tousa dans le forum Réseau
    Réponses: 2
    Dernier message: 28/03/2010, 23h57
  3. programmation c sous unix , les files de messages
    Par élève_ingénieur dans le forum Linux
    Réponses: 4
    Dernier message: 07/12/2009, 22h43
  4. Programmation systeme sous Unix
    Par Premium dans le forum Linux
    Réponses: 9
    Dernier message: 11/03/2006, 09h40

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