Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:programmation:shells:page-man-bash-iii-les-operateurs-de-comparaison-numerique [25/05/2014 15:32] Hypathie [Bash : les opérateurs de comparaison numérique] |
doc:programmation:shells:page-man-bash-iii-les-operateurs-de-comparaison-numerique [30/05/2014 09:12] Hypathie [Opérateurs de comparaison numérique] |
||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
* Objet : suite de la série de wiki visant à maîtriser bash via les différents caractère spéciaux. | * Objet : suite de la série de wiki visant à maîtriser bash via les différents caractère spéciaux. | ||
- | * Niveau requis : FIXME {{tag>débutant}} | + | * Niveau requis : {{tag>débutant}} |
* Commentaires : //Contexte d'utilisation du sujet du tuto. // | * Commentaires : //Contexte d'utilisation du sujet du tuto. // | ||
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
Ligne 123: | Ligne 123: | ||
<code> | <code> | ||
[ 5 -eq 5 ]; echo $? # réponse : 0 car l'expression est vraie | [ 5 -eq 5 ]; echo $? # réponse : 0 car l'expression est vraie | ||
+ | </code> | ||
+ | |||
+ | ====Conclusion sur les tests ==== | ||
+ | **Nous avons vu qu'il était possible de faire des tests sur [[atelier:chantier:la-page-man-bash-ii-les-operateurs-lexicographiques#caracteres-de-comparaison-sur-les-chaines-de-caracteres|les chaînes de caractères]] ; sur [[atelier:chantier:la-page-man-bash-ii-les-operateurs-lexicographiques#tests-sur-les-fichiers|les fichiers]], sur [[atelier:chantier:page-man-bash-iii-les-operateurs-de-comparaison-numerique#operateurs-de-comparaison-numerique|les nombres]].**\\ | ||
+ | **Il y a deux mécanismes pour effectuer des tests, la paire de crochets et la commande test.**\\ | ||
+ | **Elle s'utilise avec les mêmes expressions de comparaison mais avec une autre syntaxe :**\\ | ||
+ | |||
+ | <note> | ||
+ | <code> | ||
+ | test expression ou bien [ expression ] | ||
+ | |||
+ | $ test -f /etc/gaga $ [ -f /etc/gaga ] | ||
+ | $ echo $? $ echo $? | ||
+ | 1 1 | ||
+ | $ $ | ||
+ | </code> | ||
+ | Dans les deux cas, le fichier /etc/gaga n'existe pas.\\ | ||
+ | (Si le fichier /etc/gaga existait, le retour serait 0.) | ||
+ | </note> | ||
+ | |||
+ | * Pour aller plus loin : les opérateurs logiques. | ||
+ | Ils s'utilisent avec les tests.\\ | ||
+ | ^ Opérateur ^ Signification ^ | ||
+ | |! | Négation | | ||
+ | |-a | ET | | ||
+ | |-o | OU | | ||
+ | |||
+ | Et dans un ordre précis :\\ | ||
+ | - ! (négation) | ||
+ | - -a (ET) | ||
+ | - -o (OU) | ||
+ | |||
+ | <note important> | ||
+ | Il doit toujours y avoir un espace autour des opérateurs !, -a et -o.\\ | ||
+ | Ne pas prendre -a (opérateur logique) pour un opérateur de test sur les fichiers.\\ | ||
+ | Ni confondre -o (opérateur logique) avec -ot (test pour savoir si un fichier1 est plus ancien qu'un fichier2.\\ | ||
+ | Il est possible de modifier la priorité d'exécution des opérateurs en utilisant des paranthèses. | ||
+ | \(........\) | ||
+ | Les parenthèses doivent être protégées par des antislashes afin de ne pas être interprétées par le shell comme étant un regroupement de commandes. | ||
+ | </note> | ||
+ | * syntaxe : | ||
+ | Le fichier "toto" n'est pas un répertoire : | ||
+ | <code> | ||
+ | [ ! -d /etc/group ] | ||
+ | echo $? | ||
+ | 0 | ||
+ | </code> | ||
+ | |||
+ | Le fichier mon-script existe et est exécutable : | ||
+ | <code> | ||
+ | [ -f mon-script -a -x mon-script ] | ||
+ | echo $? | ||
+ | 0 | ||
</code> | </code> | ||