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 :

[Shell] Tester si un fichier est vide


Sujet :

Linux

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 40
    Points : 28
    Points
    28
    Par défaut [Shell] Tester si un fichier est vide
    Bonjour, j'ai créé un script bash pour vérifier si un fichier est vide, seulement celui-ci ne marche pas...

    Voici l'extrait de mon code :
    function lister()
    {
    var=`wc -w /etc/ntp.conf | awk '{print $1}'`
    if ["$var" = 0];
    then
    echo "Ya rien la dedans"
    else
    cat /etc/ntp.conf
    fi
    }
    Voyez vous d'ou vient le pb? Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 271
    Points : 329
    Points
    329
    Par défaut
    [ -s FICHIER ] && echo "pas vide" || echo "vide"


    man test (pour plus d'infos)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Merci tamiel j'ai donc essayé avec la fonction test mais a priori mon code comporte toujours un pb

    function lister()
    {
    if -s /etc/ntp.conf
    then
    cat /etc/ntp.conf
    else
    echo "Vide"
    fi
    }

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 721
    Points : 31 044
    Points
    31 044
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Spitfire378 Voir le message
    Merci tamiel j'ai donc essayé avec la fonction test mais a priori mon code comporte toujours un pb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function lister()
    {
    if -s /etc/ntp.conf
    then
    cat /etc/ntp.conf
    else
    echo "Vide"
    fi
    }
    Et elle est où la fonction test dans ton code ? (test n'est pas une fonction mais une instruction)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function lister()
    {
    if test -s /etc/ntp.conf
    then
    cat /etc/ntp.conf
    else
    echo "Vide"
    fi
    }
    Et sinon, si on revient à ton premier code (qui dénote de grandes qualités dans l'utilisation de tes connaissances actuelles pour résoudre ton problème), il n'y a qu'un défaut pour qu'il marche => les espaces après les crochets du if
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if [<un espace ici>"$var" = 0<un espace là>]
    Et le point-virgule est inutile

    Et en terme de comparaison numérique, vaut mieux utiliser "-eq" plutôt que "=" car "=" est une comparaison littérale alors que "eq" est une comparaison numérique. Par exemple, si tu compares "5" avec "0005" ben avec "=" ça sortira faux alors qu'avec "eq" ça sortira vrai
    Cours complet de shell pour Linux ici http://linux.developpez.com/cours/

Discussions similaires

  1. [POI]: Tester si un fichier est vide
    Par mouss4rs dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 06/03/2012, 18h10
  2. Tester si un fichier est vide + recup valeur dans ce fichier
    Par Johann7751 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 26/02/2009, 15h51
  3. [VB 6.0] Tester si un fichier est vide
    Par maxou75 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 19/12/2006, 18h06
  4. Tester si un fichier est vide ?
    Par stepd dans le forum Réseau
    Réponses: 15
    Dernier message: 27/07/2006, 19h04
  5. Ksh - tester si un fichier est vide ou pas?
    Par mzt.insat dans le forum Linux
    Réponses: 1
    Dernier message: 25/04/2006, 14h22

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