Börjar med bash: -lt och -gt argument

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

  • Tyvärr, jag känner mig värt att peka att echo uttalanden i koden svarar på din fråga.
  • Det saknas citat kring variablerna

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:

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

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *