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

Linux Discussion :

Problème avec l'utilisation de la commande system awk


Sujet :

Linux

  1. #1
    Membre habitué Avatar de vbcasimir
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 455
    Points : 168
    Points
    168
    Par défaut Problème avec l'utilisation de la commande system awk
    Bonjour ,

    je voudrais utiliser la commande system dans le language awk
    voici mon script

    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
     
     
     
    Requete=$(su - orafrm -c "sqlplus -s apps/apps <<!
     
    set head off
     
    select FCPT.USER_CONCURRENT_PROGRAM_NAME
             , FCR.ACTUAL_START_DATE
             , FCR.ACTUAL_COMPLETION_DATE
    from   FND_CONCURRENT_REQUESTS FCR
             , FND_CONCURRENT_PROGRAMS FCP
             , FND_CONCURRENT_PROGRAMS_TL FCPT
    where  FCP.CONCURRENT_PROGRAM_ID = FCR.CONCURRENT_PROGRAM_ID
    and      FCP.CONCURRENT_PROGRAM_ID = FCPT.CONCURRENT_PROGRAM_ID
    and      FCP.CONCURRENT_PROGRAM_NAME = 'CMCTCM'
    and      FCPT.LANGUAGE = 'F'
    and      FCR.STATUS_CODE = 'I'
    and      MONTHS_BETWEEN(SYSDATE , FCR.ACTUAL_COMPLETION_DATE) = 0;
    exit
    !")
     
    echo $Requete | awk '{
     
     {
     
      if ($4 = $5)
     
    Mon soucis =>  
            system ("echo \"ceci est un test\" | mail -s \"Alerte (test): pas de problème au niveau d'un Current manager\" \"email@nomdomaine\"")
      else
     
       system ("echo \"ceci est un test\" | mail -s \"Alerte (test): problème au niveau d'un Current manager\" \"email@nomdomaine\"")
     
     
     }
     
    }'
    mon problème est la commande de base que je veux utiliser comprends des guillemets or la commande system en utilise egalement , du coup il y a confusion ...

    j'ai essayé de rajouter les barres \ comme dans le script mais rien à faire ...

    la commande que je veux faire passer à la commande system("") est celle-ci :

    echo "ceci est un test" | mail -s "Alerte (test): problème au niveau d'un Current manager" "email@nom_domaine"

    Merci
    c@simir

  2. #2
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Je ne comprends pas pourquoi tu utilises la commance system.
    Quel intérêt ? tu peux mettre le contenu de ton appel de fonction directement sans passer par système.
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  3. #3
    Membre habitué Avatar de vbcasimir
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 455
    Points : 168
    Points
    168
    Par défaut
    il faudrait que tu m'éclaires quand tu dis


    "il te suffit mettre le contenu de ton appel de fonction directement sans passer par système"
    pour moi je le comprends comme ci-dessous ...
    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
     
     
    Requete=$(su - orafrm -c "sqlplus -s apps/apps <<!
     
    set head off
     
    select FCPT.USER_CONCURRENT_PROGRAM_NAME
             , FCR.ACTUAL_START_DATE
             , FCR.ACTUAL_COMPLETION_DATE
    from   FND_CONCURRENT_REQUESTS FCR
             , FND_CONCURRENT_PROGRAMS FCP
             , FND_CONCURRENT_PROGRAMS_TL FCPT
    where  FCP.CONCURRENT_PROGRAM_ID = FCR.CONCURRENT_PROGRAM_ID
    and      FCP.CONCURRENT_PROGRAM_ID = FCPT.CONCURRENT_PROGRAM_ID
    and      FCP.CONCURRENT_PROGRAM_NAME = 'CMCTCM'
    and      FCPT.LANGUAGE = 'F'
    and      FCR.STATUS_CODE = 'I'
    and      MONTHS_BETWEEN(SYSDATE , FCR.ACTUAL_COMPLETION_DATE) = 0;
    exit
    !")
     
    echo $Requete | awk '{
     
     {
      if ($4 = $5)
     
     
          echo "test" | mail -s "test" "alerte.erp@cachalot"
       else
     
           print "1"
     
     }
     
    }
    '
    or ça ne peut pas fonctionner ...
    c@simir

  4. #4
    Membre habitué Avatar de vbcasimir
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 455
    Points : 168
    Points
    168
    Par défaut
    bon j'ai trouvé la bonne synthaxe


    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
     
     
     
    Requete=$(su - orafrm -c "sqlplus -s apps/apps <<!
     
    set head off
     
    select FCPT.USER_CONCURRENT_PROGRAM_NAME
             , FCR.ACTUAL_START_DATE
             , FCR.ACTUAL_COMPLETION_DATE
    from   FND_CONCURRENT_REQUESTS FCR
             , FND_CONCURRENT_PROGRAMS FCP
             , FND_CONCURRENT_PROGRAMS_TL FCPT
    where  FCP.CONCURRENT_PROGRAM_ID = FCR.CONCURRENT_PROGRAM_ID
    and      FCP.CONCURRENT_PROGRAM_ID = FCPT.CONCURRENT_PROGRAM_ID
    and      FCP.CONCURRENT_PROGRAM_NAME = 'CMCTCM'
    and      FCPT.LANGUAGE = 'F'
    and      FCR.STATUS_CODE = 'I'
    and      MONTHS_BETWEEN(SYSDATE , FCR.ACTUAL_COMPLETION_DATE) = 0;
    exit
    !")
     
    echo $Requete | awk '{
     
     {
      if ($4 != $5)
     
            cmdawk = sprintf("echo \"Il y a le traitement du gestionnaire de calcul des coûts qui est arrêté il faut le relancer\" | mail -s \"Alerte : problème au niveau un Current manager\" alerte.erp@cachalot")
     
            system(cmdawk)
     }
     
    }'
    toute fois je reste curieux de connaître ta façon de faire ggnore


    8)
    c@simir

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. pb avec le localhost et la commande system()
    Par Leena666 dans le forum Web
    Réponses: 2
    Dernier message: 31/05/2007, 09h42
  2. [debutant] problème avec type à utiliser
    Par mlequim dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 15/07/2005, 16h08
  3. Problème avec l'utilisation de la fonction clock
    Par Matgic95 dans le forum C++Builder
    Réponses: 13
    Dernier message: 09/05/2005, 19h27
  4. Retour d'erreur avec l'utilisation de la commande For en VBS
    Par genialk2000 dans le forum VBScript
    Réponses: 3
    Dernier message: 30/03/2005, 18h45
  5. Réponses: 4
    Dernier message: 02/11/2004, 15h18

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