Je commence avec bash et j'ai trouvé ce qui suit:
if test $first -lt $second then echo $first is lower than $second else if test $first -gt $second then echo $first is higher than $second else echo $first and $second are equals fi fi
Pour lire le script et l'exécuter, je sais ce qu'il fait, mais pas pour quoi -lt et -gt sont pour.
Quelqu'un peut-il me dire quel est le nom de ce type d'outil et ce qu'ils font (-lt et -gt)? Merci!
C'est court pour less than
et greater than
. Il est utilisé pour la comparaison d'entier dans bash. Vous pouvez en lire plus en tapant man test
:
.... INTEGER1 -gt INTEGER2 INTEGER1 is greater than INTEGER2 .... INTEGER1 -lt INTEGER2 INTEGER1 is less than INTEGER2 ....
Vous pouvez find la définition de -lt
et -gt
dans la documentation de la command test
( man test
), ou dans la documentation de bash puisque test
est une command embeddede dans bash (comme dans la plupart des autres shells).
-lt
et -gt
sont des comparaisons numériques (inférieures à [et non égales], supérieures à [et non égales]). Il y a aussi des opérateurs less / plus grand-ou-égal -le
et -ge
, et des opérateurs égaux et non égaux -ne
et -ne
. Ce sont des opérateurs numériques, il y aura donc une erreur si l'un des côtés n'est pas un nombre, et 9
est considéré comme inférieur à 10
.
La raison pour laquelle les noms comme -lt
sont utilisés plutôt que l'habituel <
est que le caractère <
serait interprété comme une redirection. Les opérateurs =
et !=
Existent aussi, mais ils effectuent une comparaison de strings: le test 00 -eq 0
est vrai alors que le test 00 = 0
est faux.
Ainsi, test 9 \< 10
est faux car 9
est sortingé avant 1
(la barre oblique inverse empêche le caractère <
d'être interprété comme un opérateur de redirection). Ces shells offrent également la syntaxe à double bracketing pour les tests, par exemple [[ 9 < 10 ]]
(contrairement à [ 9 \< 10 ]
), qui ne peut pas avoir de redirections à l'intérieur.
Ce ne sont que des opérateurs.
Simplement: gt
et lt
signifient> (supérieur à) et <(inférieur à).
Vous pouvez regarder ici pour plus d'informations sur les opérateurs:
Ce sont des opérateurs de comparaison
-lt = inférieur à
-gt = supérieur à
Vous pouvez vérifier cette page pour plus de détails: