Începând cu bash: -lt și -gt argumente

Am „începând cu bash și am găsit următoarele:

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 

Pentru a citi scriptul și a-l executa, știu ce face, dar nu pentru ce -lt și -gt sunt.

Poate cineva să-mi spună care este numele genul ăsta de „instrument” și ce fac ei (-lt și -gt)? Mulțumesc!

Comentarii

  • Ne pare rău, dar simt că merită să fie indicat constată că afirmațiile echo din cod răspund la întrebarea dvs.
  • Lipsesc ghilimele în jurul variabilelor

Răspuns

Este scurt pentru less than și greater than. Este folosit pentru compararea numărului întreg în bash. Puteți citi mai multe tastând man test:

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

Răspuns

Puteți găsi definiția -lt și -gt în documentația comenzii test (man test) sau documentația bash, deoarece test este o comandă încorporată în bash (ca în majoritatea celorlalte shell-uri).

-lt și -gt sunt comparații numerice (mai mici decât [și nu egale], mai mari decât [și nu egale]). Există, de asemenea, operatori mai mici / mai mari sau egali -le și -ge și operatori egali și nu egali -eq și -ne. Aceștia sunt operatori numerici, deci va exista o eroare dacă ambele părți nu sunt” un număr, și 9 este considerat au fost mai puțin de 10.

Motivele pentru care numele -lt sunt utilizate mai degrabă decât înseamnă că caracterul < ar fi interpretat ca o redirecționare. Operatorii = și != există, de asemenea, dar efectuează o comparație șir: test 00 -eq 0 este true întrucât test 00 = 0 este fals.

Unele cochilii, inclusiv bash, au și operatori < și > care efectuează o comparație lexicografică de șiruri, deci test 9 \< 10 este fals deoarece 9 este sortat înainte de 1 (bara inversă împiedică interpretarea caracterului < ca un operator de redirecționare). Aceste cochilii oferă, de asemenea, sintaxa cu paranteză dublă pentru teste, de ex. [[ 9 < 10 ]] (spre deosebire de [ 9 \< 10 ]), care nu poate avea redirecționări în interior, astfel încât < nu trebuie să fie citat.

Răspuns

Sunt doar operatori.

Pur și simplu: gt și lt mean> (mai mare decât) și < (mai puțin de).

Puteți căuta aici pentru mai multe informații despre operatori:

Răspuns

Aceștia sunt operatori de comparație

-lt = mai puțin decât

-gt = mai mare decât

Puteți verifica această pagină pentru detalii suplimentare:

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

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *