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 :

besoin d'aide pour un script bash


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2011
    Messages : 1
    Par défaut besoin d'aide pour un script bash
    Bonjour à tous.

    J'ai un script qui doit :

    • au préalable selectionner les noms de fichiers prets pour le chargement
    • ensuite insérer les données des fichiers portant ce mot dans une base de données
    • par la suite il verifie que les données chargées sont les meme que celles que nous avons dans le repertoire
    • si les données sont les memes ou pas on insère les données dans la base etllogs.



    Mais à l'exécution , on a :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ./test: line 13: syntax error near unexpected token `|'
    ./test: line 13: `for $nomfichier in [ $REQUETE | awk -F" " '{for (i=2; i<=NF; i++) print $i; system("echo");}' | sort -u ] '
    Voici le 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
    39
    40
    41
    #!/bin/bash
    PLATFORM="SMSC_"
    TARGETDIR="/data/smsc/mvFiles"
    Fdate=`date -d 'today' +"%Y-%m-%d"`
    Ddate=`date -d 'today' +"%Y-%m-%d"`
    AUJOURDHUI=`date -d 'today' +"%Y-%m-%d"`
    nbLinesFiles=`wc -l $nomfic`
    nbLinesInsert=`wc -l`
     
    # Verifier que le fichier est pret a etre charge
    REQUETE=`mysql -D etllogs -e "SELECT nomFichier FROM tbprechargement WHERE pretPourChargement=1"`;
     
    #echo $REQUETE > test.log
     
    #REQUETE2=`echo $REQUETE | awk -F" " '{for(i=2; i<=NF; i++) print $i; system("echo");}' `;
    echo $REQUETE | awk -F" " '{for(i=2; i<=NF; i++) print $i; system("echo");}'| sort -u;
    #echo $REQUETE2;
     
    #chargement effectif des donnees
    for $nomfichier in $REQUETE | awk -F" " '{for (i=2; i<=NF; i++) print $i; system("echo");}'| sort -u
       do
         awk -F '{
            sqlcode="INSERT INTO smsc VALUES('\''"$1" "$2"':00\'',"$3","$4","$5","$6","$7","$8","$9","$10","$11");"
            system("echo -n  '$AUJOURDHUI' '$begin'");
                             system("echo -n  \"" sqlcode "\"+E: ");
                             system("mysql -D qosva -e \"" sqlcode "\"");
                            system("echo  ");
    }' >>loading
     
    echo  $loading;
     
        if  diff <(cd $TARGETDIR; find . -printf "%p\t%s\n"|sort) <(cd $loading; find . -printf "%p\t%s\n"|sort)
       then
           echo " annuler le chargement"
           #insertion des donnees dans la base etllogs
           requete_1=`mysql -D etllogs -e "INSERT INTO metadata(nomFichier,nomPlateforme, nbLinesFile, dateChargementDonnees,dateDebutExec,dateFinExec, nbLinesInsert) VALUES('$TARGETDIR$nomfic', '$PLATFORM', '$AUJOURDHUI', '$Ddate', '$Fdate', '$NLinsert');"`
       else
          echo "le chargement est effectue"
          requete=`mysql -D etllogs -e "INSERT INTO metadata(nomFichier,nomPlateforme, nbLinesFile, dateChargementDonnees,dateDebutExec,dateFinExec, nbLinesInsert,etatChargement) VALUES('$nomfic', '$PLATFORM','$nbLinesFiles', '$AUJOURDHUI', '$Ddate', '$Fdate', '$nbLinesInsert');"`
     
    exit
    Merci d'avance de votre aide.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 635
    Par défaut
    Bonjour,

    le for n'est pas fermé, le if non plus.

    relis dans le man de BASH les lignes concernant ces commandes composées.

    awk 'system("echo")' est un non-sens.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Besoin d'aide pour petit script
    Par tibofo dans le forum VBScript
    Réponses: 2
    Dernier message: 22/07/2009, 22h37
  2. [MySQL] Besoin d'aide pour un script
    Par spespam dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/11/2008, 15h03
  3. [MySQL] besoin d'aide pour un script pour la numérotation de page
    Par rysis83 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 30/01/2008, 20h59
  4. Besoin d'aide pour modif script
    Par Abdias dans le forum Langage
    Réponses: 5
    Dernier message: 12/10/2006, 07h00
  5. Besoin d'aide pour un script shell
    Par lecharcutierdelinux dans le forum Linux
    Réponses: 5
    Dernier message: 20/05/2006, 10h36

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