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 :

[ksh] Ne rentre pas dans une condition


Sujet :

Shell et commandes GNU

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 132
    Points : 182
    Points
    182
    Par défaut [ksh] Ne rentre pas dans une condition
    Bonjour,

    J'ai une variable du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rep=/prod/test/toto1/finaamm
    J'utilise la condition suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if [ -d {$rep%%/*} ];then
    Le répertoire : /prod/test/toto1/fin1210 existe.

    Mais je ne rentre pas dans la condition, savez-vous pourquoi ?

    Autre point savez-vous s'il est possible d'utiliser un if [ -d ] avec une expression régulière ?

    Merci d'avance

    Cordialement,
    Laurent ALLO.

  2. #2
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Salut,

    Et d'un parce que la syntaxe pour une variable c'est ${rep%%/*} et non {$rep%%/*}

    Et de deux, c'est que ${rep%%/*} ne renvoie rien

    Que veux-tu extraire de ta variable ?
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 132
    Points : 182
    Points
    182
    Par défaut
    Si on prend pour exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rep=/prod/test/toto1/finaamm
    Je souhaiterais vérifier l’existence du chemin en enlevant le dernier sous dossier. (en enlevant ce qu'il y a après le dernier /)

    Je souhaiterais donc vérifier que /prod/test/toto1 existe.

    Merci encore pour vos explications.

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    As-tu essayé avec [ -d $(dirname "${rep}") ] ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Citation Envoyé par ALaurent22 Voir le message
    Si on prend pour exemple :
    rep=/prod/test/toto1/finaamm
    Je souhaiterai vérifier l'existance du chemin en enlevant le dernier sous dossier. (en enlevant ce qui a après le dernier /)

    Je souhaiterais donc vérifier que /prod/test/toto1 existe.

    Merci encore pour vos explications.
    Alors la syntaxe est ${rep%/*} :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ echo ${rep}
    /prod/test/toto1/finaamm
     
    $ echo ${rep%/*}
    /prod/test/toto1
     
    $
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 132
    Points : 182
    Points
    182
    Par défaut
    Ok ça marche merci beaucoup.

    Bonne fin de journée.

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

Discussions similaires

  1. Condition true mais ne rentre pas dans l'alternative -> wtf?
    Par luminatis dans le forum Général Java
    Réponses: 2
    Dernier message: 18/01/2013, 09h59
  2. Condition qui ne fonctionne pas dans une page jsp
    Par Lopak dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 29/04/2010, 16h37
  3. [MySQL] Condition ne fonctionnant pas dans une classe
    Par lodan dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 09/02/2007, 16h38
  4. Fonction MAX dans une condition WHERE
    Par borgfabr dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/10/2004, 16h06
  5. Réponses: 2
    Dernier message: 24/06/2004, 09h13

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