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.