Jeg begynder med bash, og jeg fandt 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 at læse scriptet og udføre det ved jeg hvad det gør, men ikke hvad -lt og -gt er beregnet til.
Kan nogen fortælle mig, hvad navnet er på den slags “værktøj” og hvad de (-lt og -gt) gør? Tak!
Kommentarer
Svar
Det er en forkortelse for less than og greater than. Det bruges til sammenligning af heltal i bash. Du kan læse mere ved at skrive man test:
.... INTEGER1 -gt INTEGER2 INTEGER1 is greater than INTEGER2 .... INTEGER1 -lt INTEGER2 INTEGER1 is less than INTEGER2 ....
Svar
Du kan finde definitionen af -lt og -gt i dokumentationen til test kommandoen (man test), eller i dokumentationen af bash, da test er en indbygget kommando i bash (som i de fleste andre skaller).
-lt og -gt er numeriske sammenligninger (mindre end [og ikke ens], større end [og ikke lige]). Der er også mindre / større eller lige store operatorer -le og -ge, og lige og ikke-lige operatorer -eq og -ne. Disse er numeriske operatorer, så der vil være en fejl, hvis begge sider ikke er” ta nummer, og 9 betragtes ered mindre end 10.
Årsagen til, at navne som -lt bruges i stedet for den sædvanlige < er, at tegnet < ville blive fortolket som en omdirigering. Operatørerne = og != findes også, men de udfører en strengesammenligning: test 00 -eq 0 er sand, mens test 00 = 0 er falsk.
Nogle skaller, inklusive bash, har også operatorer < og > som udfører en streng leksikografisk sammenligning, så test 9 \< 10 er falsk, fordi 9 sorteres før 1 (backslash forhindrer tegnet < i at blive fortolket som en omdirigeringsoperator). Disse skaller tilbyder også syntaks med dobbeltbeslag til test, f.eks. [[ 9 < 10 ]] (i modsætning til [ 9 \< 10 ]), som ikke kan have omdirigeringer indeni, så < behøver ikke at blive citeret.
Svar
De er bare operatorer.
Simpelthen: gt og lt betyder> (større end) og < (mindre end).
Du kan se her for mere information om operatører:
Svar
Dette er sammenligningsoperatorer
-lt = mindre end
-gt = større end
Du kan kontrollere denne side for yderligere detaljer:
echoudsagn i koden besvarer dit spørgsmål.