En commençant par bash: arguments -lt et -gt

Je « m commence par bash et jai 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 lexécuter, je sais ce quil fait, mais pas à quoi servent -lt et -gt.

Quelquun peut-il me dire quel est le nom de ce genre d « outil » et ce quils (-lt et -gt) font? Merci!

Commentaires

  • Désolé, mais je pense quil vaut la peine de le signaler que les instructions echo dans le code répondent à votre question.
  • Il manque des guillemets autour des variables

Réponse

Cest labréviation de less than et greater than. Il « est utilisé pour la comparaison dentiers dans bash. Pour en savoir plus, saisissez man test:

 .... INTEGER1 -gt INTEGER2 INTEGER1 is greater than INTEGER2 .... INTEGER1 -lt INTEGER2 INTEGER1 is less than INTEGER2 .... 

Réponse

Vous pouvez trouver la définition de -lt et -gt dans la documentation de la test commande (man test), ou dans la documentation de bash puisque test est une commande intégrée à 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 existe également des opérateurs inférieurs / supérieurs ou égaux -le et -ge, et opérateurs égaux et non égaux -eq et -ne. Ce sont des opérateurs numériques, il y aura donc une erreur si lun ou lautre des côtés nest pas » ta number, et 9 est considéré moins de 10.

Les noms de raison tels que -lt sont utilisés plutôt que les signifie que le caractère < serait interprété comme une redirection. Les opérateurs = et != existent également, mais ils effectuent une comparaison de chaînes: test 00 -eq 0 est true alors que test 00 = 0 est false.

Certains shells, y compris bash, ont également des opérateurs < et > qui effectuent une comparaison lexicographique de chaînes, donc test 9 \< 10 est faux car 9 est trié 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 des doubles crochets pour les tests, par ex. [[ 9 < 10 ]] (par opposition à [ 9 \< 10 ]), qui ne peut « pas contenir de redirections donc le < na pas besoin dêtre entre guillemets.

Réponse

Ce ne sont que des opérateurs.

Simplement: gt et lt signifie> (supérieur à) et < (inférieur à).

Vous pouvez regarder ici pour plus dinformations sur les opérateurs:

Réponse

Ce sont des opérateurs de comparaison

-lt = inférieur à

-gt = supérieur à

Vous pouvez consulter cette page pour plus de détails:

http://tldp.org/LDP/abs/html/comparison-ops.html

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *