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 :

Problème dans une condition


Sujet :

Linux

  1. #1
    Membre actif Avatar de gibet_b
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 292
    Points : 296
    Points
    296
    Par défaut Problème dans une condition
    Salut à tous,

    J'ai écrit ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/sh
    for I in * ; do
      if test -e /home/www/$I ; then
       if test -d /home/www/$I ; then
        echo $I
       fi
      fi
    done
    Seulement je voudrais tester si le répertoire n'existe pas... J'ai essayé "! test -e ..." mais ca ne marche pas !

    Merci d'avance !
    Jean-Baptiste, vieux membre éclairé à la bougie
    -----
    www.e-jbb.net : Écriture et lecture numérique
    ---
    Citation du moment : "On abdique pas l'honneur d'être une cible" - Cyrano De Bergerac

  2. #2
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for I in * ; do 
    if [ ! -d $I  ] 
     then 
       echo pas un repertoire 
       else echo repertoire 
     fi

  3. #3
    Membre actif Avatar de gibet_b
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 292
    Points : 296
    Points
    296
    Par défaut
    Merci mais cela ne fonctionne pas... Quand j'écrit ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/bin/sh
    for I in * ; do
       if [ ! -d /home/www/$I]; then
        echo $I
       fi
    done
    J'ai cette erreur à l'exécution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    rmlns: line 3: [: missing `]'
    rmlns: line 3: [: missing `]'
    rmlns: line 3: [: missing `]'
    rmlns: line 3: [: missing `]'
    rmlns: line 3: [: missing `]'
    rmlns: line 3: [: missing `]'[quote]
     
    Sachant que j'ai 6 fichiers dans le dossier du script dont un lien qui pointe vers un répertoire.
    Jean-Baptiste, vieux membre éclairé à la bougie
    -----
    www.e-jbb.net : Écriture et lecture numérique
    ---
    Citation du moment : "On abdique pas l'honneur d'être une cible" - Cyrano De Bergerac

  4. #4
    Membre actif Avatar de gibet_b
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 292
    Points : 296
    Points
    296
    Par défaut
    Bon ben j'ai réussi à faire ce que je voulais ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/bin/sh
    for I in * ; do
       if test ! -e $I; then
        rm -rf $I
       fi
    done
    Merci
    Jean-Baptiste, vieux membre éclairé à la bougie
    -----
    www.e-jbb.net : Écriture et lecture numérique
    ---
    Citation du moment : "On abdique pas l'honneur d'être une cible" - Cyrano De Bergerac

  5. #5
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 851
    Points : 4 743
    Points
    4 743
    Par défaut
    Pour info, ce qui n'allait pas tout à l'heure dans tout code c'est tout simplement qu'il manquait un espace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #!/bin/sh
    for I in * ; do
       if [ ! -d /home/www/$I ]; then
        echo $I
       fi
    done
    Et oui, bash est très maniaque pour les espaces dans les tests

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme dans une condition
    Par 12_darte_12 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/02/2006, 13h50
  2. [JSP] Inclusion dans une condition d'un fichier jsp
    Par Fmassiera dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 07/02/2006, 21h14
  3. [ms sql server 2000] top 1 dans une condition de jointure ?
    Par sylvkin dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 18/10/2005, 18h10
  4. Fonction MAX dans une condition WHERE
    Par borgfabr dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/10/2004, 17h06
  5. Réponses: 2
    Dernier message: 24/06/2004, 10h13

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