Jag börjar med bash och jag hittade följande:
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
För att läsa manuset och utföra det vet jag vad det gör, men inte vad -lt och -gt är för.
Kan någon berätta för mig vad som heter den typen av ”verktyg” och vad de (-lt och -gt) gör? Tack!
Kommentarer
Svar
Det är kort för less than
och greater than
. Det används för heljämförelse i bash. Du kan läsa mer genom att skriva man test
:
.... INTEGER1 -gt INTEGER2 INTEGER1 is greater than INTEGER2 .... INTEGER1 -lt INTEGER2 INTEGER1 is less than INTEGER2 ....
Svar
Du kan hitta definitionen av -lt
och -gt
i dokumentationen för test
kommandot (man test
), eller i dokumentationen av bash eftersom test
är ett inbyggt kommando i bash (som i de flesta andra skal).
-lt
och -gt
är numeriska jämförelser (mindre än [och inte lika], större än [och inte lika]). Det finns också mindre / större eller lika operatörer -le
och -ge
, och lika och inte lika operatörer -eq
och -ne
. Dessa är numeriska operatorer, så det kommer att uppstå ett fel om någon sida inte är” ta-nummer och 9
ered mindre än 10
.
Anledningen namn som -lt
används snarare än det vanliga <
är att tecknet <
skulle tolkas som en omdirigering. Operatorerna =
och !=
finns också, men de utför en strängjämförelse: test 00 -eq 0
är true medan test 00 = 0
är falskt.
Vissa skal, inklusive bash, har också operatorer <
och >
som utför en lexikografisk strängjämförelse, så test 9 \< 10
är falskt eftersom 9
sorteras före 1
(bakåtvänd snedstreck förhindrar att tecknet <
tolkas som en omdirigeringsoperator). Dessa skal erbjuder också syntaxen med dubbla fästen för tester, t.ex. [[ 9 < 10 ]]
(i motsats till [ 9 \< 10 ]
), som inte kan ha omdirigeringar inuti så att <
behöver inte citeras.
Svar
De är bara operatörer.
Enkelt: gt
och lt
betyder> (större än) och < (mindre än).
Du kan se här för mer information om operatörer:
Svar
Det här är jämförelseoperatörer
-lt = mindre än
-gt = större än
Du kan kontrollera den här sidan för ytterligare detaljer:
echo
uttalanden i koden svarar på din fråga.