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

Administration système Discussion :

commande script dans un script shell


Sujet :

Administration système

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 81
    Par défaut commande script dans un script shell
    Bonjour,

    je veux enregistrer l'activité d'un script shell, alors j'ai penser d'utiliser la commande:
    script trace.txt au début de mon script, et exit à la fin mais c'était pas fonctionner, une petite demonstartion vaut bien je pense.
    mon script s1.sh
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #!/bin/sh
    script trace.txt
    pwd
    echo "Bonjour"
    exit
    résultat après exécution :
    Le script a débuté, le fichier est trace.txt
    mais quand je tape exit voila l'autre résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    exit
    Script complélé, le fichier est trace.txt
    /home/oracle/Bureau
    Bonjour
    si vous avez d'autre solution pour enregistrer la trace je serai proneur.
    Merci

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 660
    Par défaut
    rtfm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    !/bin/sh
    script trace.txt -c '
    pwd
    echo "Bonjour"
    exit
    '
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 81
    Par défaut
    Bonjour et merci encore pour votre aide, alors j'ai un autre problème quand j'ai utilisé la même méthode mais maintenant avec un script sql intégré.
    voila 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
     
    !#/bin/sh
    script trace.txt -c '
    x=`sqlplus -s system/sys1@dba<<EOF
    set pages 0
    set serveroutput on
      DECLARE
      	v_count INTEGER := 0;
      BEGIN
      select count(1) into v_count from dba_users where username = UPPER ('mylogin');
      IF (v_count != 0)
      THEN
      DBMS_OUTPUT.put_line ('EXIST');
      ELSE
      DBMS_OUTPUT.put_line ('USER_NOT_EXIST');
      END IF;
      END;
    /
    EOF`
    echo $x
    exit
    '
    après une exécution, une erreur oracle se produit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Le script a débuté, le fichier est trace.txt
    select count(1) into v_count from dba_users where username = UPPER (MYLOGIN); ERROR at line 4: ORA-06550: line 4, column 71: PL/SQL: ORA-00904: "MYLOGIN": invalid identifier ORA-06550: line 4, column 3: PL/SQL: SQL Statement ignored ORA-06550: line 7, column 25: PLS-00201: identifier 'EXIST' must be declared ORA-06550: line 7, column 3: PL/SQL: Statement ignored ORA-06550: line 9, column 25: PLS-00201: identifier 'USER_NOT_EXIST' must be declared ORA-06550: line 9, column 3: PL/SQL: Statement ignored
    Script complélé, le fichier est trace.txt
    NB: quand je commente les lignes :
    # script trace.txt -c '
    # exit
    # '
    tous marche bien.
    même je pense qu'un problème de ( ' ) parvient, parce que quand j'ajoute quelque ligne qui contient de quotes une autre erreur s'affiche :
    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
     
    !#/bin/sh
    script trace.txt -c '
    x=`sqlplus -s system/sys1@dba<<EOF
    set pages 0
    set serveroutput on
      DECLARE
      	v_count INTEGER := 0;
      BEGIN
      select count(1) into v_count from dba_users where username = UPPER ('mylogin');
      IF (v_count != 0)
      THEN
      DBMS_OUTPUT.put_line ('EXIST');
      ELSE
      DBMS_OUTPUT.put_line ('USER_NOT_EXIST');
      EXECUTE IMMEDIATE ('create user mylogin identified by mypass');
      END IF;
      END;
    /
    EOF`
    echo $x
    exit
    '
    Après exécution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Le script a débuté, le fichier est trace.txt
    bash: -c: line 1: Caractère de fin de fichier (EOF) prématuré lors de la recherche du « ` » correspondant
    bash: -c: line 14: Erreur de syntaxe : fin de fichier prématurée
    Script complélé, le fichier est trace.txt
    pardonnez moi si j'ai trop bavarde mais je veux seulement vous donner le max de détails.
    merci

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 660
    Par défaut
    bien vu, en effet les ' peuvent poser problème.

    soit remplace par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    script trace.txt -c "
    #...
    exit
    "
    soit protège les ' dans ta commande sql :
    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
    #!/bin/sh
    
    script trace.txt -c '
    x=`sqlplus -s system/sys1@dba<<EOF
    set pages 0
    set serveroutput on
      DECLARE
            v_count INTEGER := 0;
      BEGIN
      select count(1) into v_count from dba_users where username = UPPER (\'mylogin\');
      IF (v_count != 0)
      THEN
      DBMS_OUTPUT.put_line (\'EXIST\');
      ELSE
      DBMS_OUTPUT.put_line (\'USER_NOT_EXIST\');
      END IF;
      END;
    /
    EOF`
    echo $x
    exit
    '
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 81
    Par défaut
    merci beaucoup N BaH, mais seulement pour la 1ere méthode je ne pense pas qu'il va exécuter le code qui se trouve entre " ".
    Après exécution de la 1ere méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Le script a débuté, le fichier est trace.txt
    bash: line 3: PL/SQL: Aucun fichier ou dossier de ce type
     
    Script complélé, le fichier est trace.txt
    Après exécution de la 2eme méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    script5.sh: line 9: Erreur de syntaxe près du symbole inattendu « ) »
    script5.sh: line 9: `  select count(1) into v_count from dba_users where username = UPPER (\'mylogin\'); '
    merci

Discussions similaires

  1. Exécuter une commande sudo dans un script shell
    Par lodacom dans le forum Shell et commandes GNU
    Réponses: 11
    Dernier message: 24/04/2014, 13h37
  2. Execution d'une commande telnet dans un script sh
    Par Nospher dans le forum Linux
    Réponses: 17
    Dernier message: 23/08/2011, 15h30
  3. Lancer une commande Perl dans un script Shell
    Par Ryo_san dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 02/06/2008, 11h01
  4. [cURL] Lancer une commande curl dans un script php
    Par griese dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 22/03/2007, 10h52
  5. Réponses: 1
    Dernier message: 14/03/2007, 15h56

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