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
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:
echo
din cod răspund la întrebarea dvs.