Starter med bash: -lt og -gt argumenter

Jeg begynner med bash og jeg fant følgende:

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 

For å lese skriptet og utføre det, vet jeg hva det gjør, men ikke hva -lt og -gt er til.

Kan noen fortelle meg hva som heter den slags «verktøy» og hva de (-lt og -gt) gjør? Takk!

Kommentarer

  • Beklager, men jeg føler meg verdt å peke ut at echo utsagnene i koden svarer på spørsmålet ditt.
  • Det mangler anførselstegn rundt variablene

Svar

Det er forkortelse for less than og greater than. Det brukes til sammenligning av heltall i bash. Du kan lese mer ved å skrive man test:

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

Svar

Du finner definisjonen av -lt og -gt i dokumentasjonen til test kommandoen (man test), eller i dokumentasjonen til bash siden test er en innebygd kommando i bash (som i de fleste andre skjell).

-lt og -gt er numeriske sammenligninger (mindre enn [og ikke like], større enn [og ikke like]). Det er også mindre / større eller like operatører -le og -ge, og like og ikke like operatører -eq og -ne. Dette er numeriske operatorer, så det vil være en feil hvis begge sider ikke er» ta-nummer, og 9 ered mindre enn 10.

Årsaken til at navn som -lt brukes i stedet for den vanlige < er at tegnet < vil bli tolket som en omdirigering. Operatørene = og != eksisterer også, men de utfører en strengesammenligning: test 00 -eq 0 er true mens test 00 = 0 er usant.

Noen skall, inkludert bash, har også operatorer < og > som utfører en streng leksikografisk sammenligning, så test 9 \< 10 er falsk fordi 9 er sortert før 1 (omvendt skråstrek forhindrer at tegnet < tolkes som en viderekoblingsoperator). Disse skjellene tilbyr også syntaksen med dobbel brakett for tester, f.eks. [[ 9 < 10 ]] (i motsetning til [ 9 \< 10 ]), som ikke kan ha omdirigeringer inne slik at < trenger ikke å siteres.

Svar

De er bare operatører.

Enkelt: gt og lt betyr> (større enn) og < (mindre enn).

Du kan se her for mer informasjon om operatører:

Svar

Dette er sammenligningsoperatorer

-lt = mindre enn

-gt = større enn

Du kan sjekke denne siden for ytterligere detaljer:

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

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *