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 :

Opérateurs dans un test


Sujet :

Shell et commandes GNU

  1. #1
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut Opérateurs dans un test
    Bonjour,

    Je m'intéresse à la syntaxe des tests, après un if par exemple.

    Quelle différence y a-t-il entre les opérateurs > et gt, ou eq et == par exemple?
    J'ai parcouru plusieurs tutos sur le shell, bash en l'occurrence, et je n'ai pas trouvé d'explication claire.
    J'ai l'impression que gt correspond à une syntaxe plus ancienne que > mais j'aimerais confirmation.

    De même, faut-il préférer la syntaxe avec double ou simple crochet ([] ou [[ ]])?

    Peut-on également utiliser les doubles parenthèses pour une expression de test?

    Merci pour vos réponses.

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 635
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 635
    Par défaut
    Bonjour,

    il faut préférer les crochets simples, à moins d'avoir besoin d'une des caractéristiques des double-crochets.

    entre crochets :
    -gt, -eq, -ne, lt sont des tests arithmétiques.
    >, <, = sont des tests alphabétiques.

    entre double-parenthèses, on utilise les symboles mathématiques.

    Plus de détails en lisant help test.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonsoir.

    Citation Envoyé par N_BaH Voir le message
    entre crochets :
    -gt, -eq, -ne, lt sont des tests arithmétiques.
    J'ajouterai qu'on a aussi -le et -ge pour les inégalités non strictes.

    Cordialement,
    Idriss

  4. #4
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut
    Merci pour vos réponses

    il faut préférer les crochets simples, à moins d'avoir besoin d'une des caractéristiques des double-crochets.
    Quels sont les inconvénients de l'utilisation de [[ ]]?
    Je sais qu'on trouve de tout sur le weg, mais j'ai relevé ceci sur ce site qui me semble sérieux:
    Astuce

    Utiliser la construction [[ ... ]], au lieu de [ ... ] peut vous permettre d'éviter des erreurs de logique dans vos scripts. Par exemple, les opérateurs &&, ||, < et > fonctionnent à l'intérieur d'un test [[ ]] bien qu'ils génèrent une erreur à l'intérieur d'une construction [ ].
    A+

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 635
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 635
    Par défaut
    Bonjour,

    Quels sont les inconvénients de l'utilisation de [[ ]]?
    ce n'est pas POSIX.
    Je trouve raisonnable d'utiliser d'abord les standards, et seulement ce qui ne l'est pas si on a besoin de "propriétés étendues" que proposent les shells évolués, tels que bash, ksh, zsh, et si on est sûr que de tels shells sont disponibles sur la machine qui exécutera le script.

    Il y a de bonnes choses dans l'ABS, mais il n'est pas sans erreur; en voici un exemple (imho).
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut
    Bien reçu.

    En revanche, je n'ai pas compris pour l'exemple.

    A+

  7. #7
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 635
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 635
    Par défaut
    l'exemple est la citation de l'ouvrage : "«" utiliser une forme plutôt qu'une autre parce qu'on pourrait se tromper "»", au lieu d'apprendre à utiliser correctement celle qui pourrait poser problème.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  8. #8
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut
    ok, merci

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

Discussions similaires

  1. BlackBerry 10 en test auprès de 50 opérateurs dans le monde
    Par Hinault Romaric dans le forum Mobiles
    Réponses: 4
    Dernier message: 16/11/2012, 09h44
  2. Erreur dans un test if
    Par lifeisgood dans le forum Langage
    Réponses: 3
    Dernier message: 10/11/2006, 10h47
  3. [Tableaux] Rajouter une condition dans un test
    Par kevinf dans le forum Langage
    Réponses: 11
    Dernier message: 08/11/2006, 16h03
  4. Include : dans un test d'une page JSP
    Par Mister Nono dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 11/09/2006, 16h01
  5. Simuler l'opérateur "*" dans les requêtes
    Par soso78 dans le forum Access
    Réponses: 3
    Dernier message: 29/11/2005, 10h42

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