Začínám bash a našel jsem následující:
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
Po přečtení a provedení skriptu vím, co dělá, ale ne to, k čemu jsou -lt a -gt.
Může mi někdo říct, jak se jmenuje tento druh „nástroje“ a co dělají (-lt a -gt)? Díky!
Komentáře
Odpověď
Je to zkratka pro less than
a greater than
. Používá se k celočíselnému porovnání v bash. Další informace si můžete přečíst zadáním man test
:
.... INTEGER1 -gt INTEGER2 INTEGER1 is greater than INTEGER2 .... INTEGER1 -lt INTEGER2 INTEGER1 is less than INTEGER2 ....
Odpověď
Definici -lt
a -gt
najdete v dokumentace příkazu test
(man test
) nebo v dokumentace bash, protože test
je vestavěný příkaz v bash (jako ve většině ostatních shellů).
-lt
a -gt
jsou numerická srovnání (menší než [a nerovná se], větší než [a nerovná se]). Existují také operátory menší / větší nebo rovné -le
a -ge
a operátory stejné a nerovnocenné -eq
a -ne
. Jedná se o číselné operátory, takže dojde k chybě, pokud některá strana nebude číslo a 9
je brána v úvahu méně než 10
.
Názvy důvodů jako -lt
se používají spíše než obvyklé <
je, že znak <
bude interpretován jako přesměrování. Existují také operátory =
a !=
, ale provádějí porovnání řetězců: test 00 -eq 0
je true vzhledem k tomu, že test 00 = 0
je false.
Některé skořápky, včetně bash, mají také operátory <
a >
které provádějí řetězcové lexikografické srovnání, takže test 9 \< 10
je nepravdivý, protože 9
je seřazen před 1
(zpětné lomítko brání interpretaci znaku <
jako operátoru přesměrování). Tyto skořápky také nabízejí syntaxi dvojitých závorek pro testy, např. [[ 9 < 10 ]]
(na rozdíl od [ 9 \< 10 ]
), které uvnitř nemohou mít přesměrování, takže <
není třeba citovat.
Odpověď
Jsou to pouze operátoři.
Jednoduše: gt
a lt
mean> (větší než) a < (menší než).
Další informace o operátorech najdete zde :
Odpovědět
Toto jsou operátory porovnání
-lt = menší než
-gt = větší než
Tuto stránku můžete zkontrolovat další podrobnosti:
echo
příkazy v kódu odpovídají na vaši otázku.