Ich beginne mit bash und habe Folgendes gefunden:
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
Um das Skript zu lesen und auszuführen, weiß ich, was es tut, aber nicht, wofür -lt und -gt sind.
Kann mir jemand sagen, wie es heißt Diese Art von „Werkzeug“ und was sie (-lt und -gt) tun? Danke!
Kommentare
- Entschuldigung, aber ich bin es wert, darauf hinzuweisen Stellen Sie sicher, dass die Anweisungen
echo
im Code Ihre Frage beantworten. - Es fehlen Anführungszeichen um die Variablen
Antwort
Es ist die Abkürzung für less than
und greater than
. Es wird für den Ganzzahlvergleich in Bash verwendet. Sie können mehr lesen, indem Sie man test
eingeben:
.... INTEGER1 -gt INTEGER2 INTEGER1 is greater than INTEGER2 .... INTEGER1 -lt INTEGER2 INTEGER1 is less than INTEGER2 ....
Antwort
Die Definition von -lt
und -gt
finden Sie in die Dokumentation des Befehls test
(man test
) oder in Die Dokumentation von bash seit test
ist ein in bash integrierter Befehl (wie in den meisten anderen Shells).
-lt
und -gt
sind numerische Vergleiche (kleiner als [und nicht gleich], größer als [und nicht gleich]). Es gibt auch weniger / größer oder gleich Operatoren -le
und -ge
sowie gleiche und ungleiche Operatoren -eq
und -ne
. Dies sind numerische Operatoren. Es tritt also ein Fehler auf, wenn eine Seite keine“ ta number „ist und 9
berücksichtigt wird weniger als 10
.
Die Grundnamen wie -lt
werden anstelle der üblichen bedeutet, dass das Zeichen <
als Umleitung interpretiert wird. Die Operatoren =
und !=
sind ebenfalls vorhanden, führen jedoch einen Zeichenfolgenvergleich durch: test 00 -eq 0
ist true, während test 00 = 0
false ist.
Einige Shells, einschließlich bash, haben auch die Operatoren <
und >
, die einen lexikografischen Zeichenfolgenvergleich durchführen. test 9 \< 10
ist also falsch, da 9
vor 1
(der Backslash verhindert, dass das Zeichen <
als Umleitungsoperator interpretiert wird). Diese Shells bieten auch die Doppelklammer-Syntax für Tests, z. [[ 9 < 10 ]]
(im Gegensatz zu [ 9 \< 10 ]
), die keine Umleitungen enthalten kann, so dass die <
muss nicht in Anführungszeichen gesetzt werden.
Antwort
Sie sind nur Operatoren.
Einfach: gt
und lt
bedeuten> (größer als) und < (kleiner als).
Antwort
Dies sind Vergleichsoperatoren
-lt = kleiner als
-gt = größer als
Sie können diese Seite überprüfen Weitere Details: