Beginnend met bash: -lt en -gt argumenten

Ik “m beginnend met bash en ik vond het volgende:

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 

Voor het lezen en uitvoeren van het script weet ik wat het doet, maar niet waar -lt en -gt voor zijn.

Kan iemand me vertellen wat de naam is van dat soort “tool” en wat zij (-lt en -gt) doen? Bedankt!

Reacties

  • Sorry, maar ik vind het de moeite waard om te wijzen uit dat de echo statements in de code uw vraag beantwoorden.
  • Er ontbreken aanhalingstekens rond de variabelen

Answer

Het is een afkorting voor less than en greater than. Het wordt gebruikt voor het vergelijken van gehele getallen in bash. U kunt meer lezen door man test:

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

Answer

Je kunt de definitie van -lt en -gt vinden in de documentatie van het test commando (man test), of in de documentatie van bash sinds test is een ingebouwd commando in bash (zoals in de meeste andere shells).

-lt en -gt zijn numerieke vergelijkingen (kleiner dan [en niet gelijk], groter dan [en niet gelijk]). Er zijn ook minder / groter of gelijk operatoren -le en -ge, en gelijke en niet-gelijke operatoren -eq en -ne. Dit zijn numerieke operatoren, dus er zal een fout optreden als een van beide zijden niet” ta getal is, en 9 wordt beschouwd ered minder dan 10.

De reden waarom namen als -lt worden gebruikt in plaats van de gebruikelijke < is dat het teken < zou worden geïnterpreteerd als een omleiding. De operatoren = en != bestaan ook, maar ze voeren een stringvergelijking uit: test 00 -eq 0 is true terwijl test 00 = 0 false is.

Sommige shells, waaronder bash, hebben ook operatoren < en > die een lexicografische stringvergelijking uitvoeren, dus test 9 \< 10 is onwaar omdat 9 wordt gesorteerd vóór 1 (de backslash voorkomt dat het teken < wordt geïnterpreteerd als een omleidingsoperator). Deze shells bieden ook de syntaxis met dubbele beugel voor tests, bijv. [[ 9 < 10 ]] (in tegenstelling tot [ 9 \< 10 ]), die “geen omleidingen mag bevatten”, dus de < hoeft niet te worden geciteerd.

Antwoord

Het zijn slechts operators.

Gewoon: gt en lt mean> (groter dan) en < (kleiner dan).

Je kunt hier kijken voor meer informatie over operators:

Answer

Dit zijn vergelijkingsoperatoren

-lt = kleiner dan

-gt = groter dan

U kunt deze pagina controleren op meer details:

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

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *