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
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 ....
Je kunt de definitie van De reden waarom namen als Sommige shells, waaronder bash, hebben ook operatoren Het zijn slechts operators. Gewoon: Je kunt hier kijken voor meer informatie over operators: Dit zijn vergelijkingsoperatoren -lt = kleiner dan -gt = groter dan U kunt deze pagina controleren op meer details: -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
. -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. <
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
gt
en lt
mean> (groter dan) en < (kleiner dan). Answer
echo
statements in de code uw vraag beantwoorden.