Minä aloitan bashilla ja löysin seuraavan:
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
Skriptin lukemista ja suorittamista varten tiedän, mitä se tekee, mutta en mitä -lt ja -gt ovat.
Voiko joku kertoa minulle, mikä on sellainen ”työkalu” ja mitä he (-lt ja -gt) tekevät? Kiitos!
Kommentit
Vastaa
Se on lyhenne sanoista less than
ja greater than
. Sitä käytetään kokonaislukujen vertailussa bashissa. Voit lukea lisää kirjoittamalla man test
:
.... INTEGER1 -gt INTEGER2 INTEGER1 is greater than INTEGER2 .... INTEGER1 -lt INTEGER2 INTEGER1 is less than INTEGER2 ....
Vastaa
Löydät -lt
– ja -gt
-määritykset test
-komennon (man test
) tai bashin dokumentaatio, koska test
on sisäänrakennettu komento bashissa (kuten useimmissa muissa kuoreissa).
-lt
ja -gt
ovat numeerisia vertailuja (vähemmän kuin [ja ei yhtä], suurempi kuin [ja ei yhtä]). On myös vähemmän / suurempia tai yhtä suuria operaattoreita -le
ja -ge
, ja yhtäläiset ja ei-yhtäläiset operaattorit -eq
ja -ne
. Nämä ovat numeerisia operaattoreita, joten virhe tapahtuu, jos jompikumpi puoli ei ole ta-numero ja 9
on pienempi kuin 10
.
Syy-nimiä kuten -lt
käytetään tavallisen on, että merkki <
tulkitaan uudelleenohjaukseksi. Operaattorit =
ja !=
ovat myös olemassa, mutta ne suorittavat merkkijonovertailun: test 00 -eq 0
on true kun taas test 00 = 0
on väärä.
Joillakin kuoreilla, bash mukaan lukien, on myös operaattoreita <
ja >
, jotka suorittavat merkkijonoleksikografisen vertailun, joten test 9 \< 10
on väärä, koska 9
on lajiteltu ennen 1
(taaksepäin viiva estää merkin <
tulkitsemisen uudelleenohjausoperaattoriksi). Nämä kuoret tarjoavat myös kaksoissulkeisen syntaksin testeihin, esim. [[ 9 < 10 ]]
(toisin kuin [ 9 \< 10 ]
), jolla ei voi olla uudelleenohjauksia sisällä, joten <
ei tarvitse lainata.
Vastaa
Ne ovat vain operaattoreita.
Yksinkertaisesti: gt
ja lt
keskiarvo> (suurempi kuin) ja < (alle).
Voit etsiä täältä saadaksesi lisätietoja operaattoreista:
Vastaa
Nämä ovat vertailuoperaattoreita
-lt = pienempi kuin
-gt = suurempi kuin
Voit tarkistaa tämän sivun Lisätietoja:
echo
-lausekkeet vastaavat kysymykseesi.