Aloittaen bash: -lt- ja -gt-argumenteilla

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

  • Anteeksi, mutta minusta on syytä osoittaa että koodin echo -lausekkeet vastaavat kysymykseesi.
  • Muuttujien ympäriltä puuttuu lainausmerkkejä

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:

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

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *