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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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
    Invité
    Invité(e)
    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.

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