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 :

Erreur shell - dernière ligne d'un fichier


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    DevOps
    Inscrit en
    Décembre 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : DevOps

    Informations forums :
    Inscription : Décembre 2008
    Messages : 254
    Par défaut Erreur shell - dernière ligne d'un fichier
    Bonjour a tous,

    j'ai un petit problème sur un script .sh
    Je dois tester si la derniére ligne d'un fichier est égal à Not connected en cas de coupure ftp.

    Voici le script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #!/bin/sh
     # Vérification connexion ftp
    cmd='tail -n 1' test
     if [$cmd -eq Not conected.];
     then
          # envoi d'un mail d'alerte si connexion echoue
          php5-cgi -q mail_error_ftp.php
     else
    echo "OK"
    fi
    Il me met l'erreur suivante
    ./test.sh: line 4: [: missing `]'
    OK

    J'ai essayé dans tous les sens mais j'ai toujours une erreur.
    Il doit y avoir une erreur au niveau de la syntax mais je ne trouve pas.
    Quelqu'un pourrait m'aider?

  2. #2
    ALT
    ALT est déconnecté
    Membre Expert
    Avatar de ALT
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2002
    Messages
    1 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 379
    Par défaut
    Deux choses :

    1. Il doit y avoir une espace entre les crochets & la condition
    2. À mon avis () il y a une erreur de syntaxe, en plus, dans cette ligne.

    Bon courage

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    1) Il te faut des back quotes pour générer cmd
    2) Il faut un espace après [ et avant ]
    3) -eq c'est pour les comparaison numériques. Pour les comparaisons de chaine c'est =
    4) Il faut des guillemets autour de Not connected.
    5) Il en faut aussi autour de $cmd, au cas où $cmd serait vide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    cmd=`tail -n 1' test`
    if [ "$cmd" = "Not conected." ]
    then
        ...
    fi

  4. #4
    Membre éclairé
    Profil pro
    DevOps
    Inscrit en
    Décembre 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : DevOps

    Informations forums :
    Inscription : Décembre 2008
    Messages : 254
    Par défaut
    Voila a quoi ressemble mon code maintenant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #!/bin/sh
    # Vérification connexion ftp
    cmd=`tail -n 1 test`
     if [ "$cmd" = "Not conected." ] then
          # envoi d'un mail d'alerte si connexion echoue
         # php5-cgi -q mail_error_ftp.php
            echo "NOK";
     else
            echo "OK";
     fi
    Mais j'ai toujours des erreur
    ./test.sh: line 8: syntax error near unexpected token `else'
    ./test.sh: line 8: ` else'
    zsh: exit 2 ./test.sh


    cmd=`tail -n 1' test`
    Pur cette ligne je ne suis pas certain du ' apés le 1 car il est tous seul
    Mais toute façcon j'ai essayer avec et sans et c'est le même résultat.

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    Il faut soit un retour à la ligne avant de then, soit un point virgule. Tu pourrais au moins prendre la peine de recopier correctement... Mais je vois que tu est meilleurs à détecter les erreurs d'édition chez les autres

    D'ailleurs les points virgules sur tes lignes echo ne servent à rien.

  6. #6
    Membre éclairé
    Profil pro
    DevOps
    Inscrit en
    Décembre 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : DevOps

    Informations forums :
    Inscription : Décembre 2008
    Messages : 254
    Par défaut
    Ok merci sa marche
    Je ne pensai pas que le .sh était si strict
    C'est bizare j'ai d'autre .sh ou le then n'est pas à la ligne et sa fonctionne.
    enfin.

    Merci pour l'aide.

Discussions similaires

  1. SPOOL : Effacer dernière ligne vide du fichier.
    Par Ujitsu dans le forum Sql*Plus
    Réponses: 6
    Dernier message: 30/07/2007, 18h15
  2. lire les X dernières lignes d'un fichier.
    Par Empty_body dans le forum Langage
    Réponses: 6
    Dernier message: 13/06/2007, 11h58
  3. Effacer la dernière ligne d'un fichier texte
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/05/2007, 11h52
  4. Supprimer 1ère et dernière ligne d'un fichier
    Par yabbiyou dans le forum MATLAB
    Réponses: 3
    Dernier message: 02/03/2007, 09h05
  5. Comment lire la dernière ligne d'un fichier text.
    Par Ardely dans le forum Delphi
    Réponses: 29
    Dernier message: 20/01/2007, 23h29

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