Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/10/2011, 15h52   #1
Membre du Club
 
Homme
Enseignant
Inscription : juin 2004
Messages : 181
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : juin 2004
Messages : 181
Points : 47
Points : 47
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.
jackk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2011, 20h21   #2
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 071
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 071
Points : 4 154
Points : 4 154
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_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/10/2011, 20h58   #3
Responsable Modération
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 989
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 989
Points : 6 147
Points : 6 147
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
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2011, 09h36   #4
Membre du Club
 
Homme
Enseignant
Inscription : juin 2004
Messages : 181
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : juin 2004
Messages : 181
Points : 47
Points : 47
Merci pour vos réponses

Citation:
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:
Citation:
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+
jackk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2011, 12h09   #5
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 071
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 071
Points : 4 154
Points : 4 154
Bonjour,

Citation:
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_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2011, 13h25   #6
Membre du Club
 
Homme
Enseignant
Inscription : juin 2004
Messages : 181
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : juin 2004
Messages : 181
Points : 47
Points : 47
Bien reçu.

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

A+
jackk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2011, 13h37   #7
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 071
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 071
Points : 4 154
Points : 4 154
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_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2011, 13h42   #8
Membre du Club
 
Homme
Enseignant
Inscription : juin 2004
Messages : 181
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : juin 2004
Messages : 181
Points : 47
Points : 47
ok, merci
jackk est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h00.


 
 
 
 
Partenaires

Hébergement Web