What does the operator `-gt` in shell scripts mean?
$ help test test: test [expr] Evaluate conditional expression. ... arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne, -lt, -le, -gt, or -ge. Arithmetic binary operators return true if ARG1 is equal, not-equal, less-than, less-than-or-equal, greater-than, or greater-than-or-equal than ARG2.
-gt means "greater than". It is used to compare integers for the inequality that is usually written
> in other languages (in some shells, with the
test utility or inside
[ ... ],
> compares two strings for lexicographical ordering, so it has a very different meaning from
-gt is documented in the manual for
[, or in your shell's manual if these are built-in utilities, as
n1 -gt n2
True if the integer
n1is algebraically greater than the integer
n2; otherwise, false.
(the above is taken from the POSIX standard text about the
Fortran also uses this abbreviation in its
.GT. relational operator for numbers.
The other relevant operators for comparing integers in the shell with
test or in
[ ... ] are
-ge ("greater-than or equal"),
-le ("less-than or equal"),
-eq ("equal") and
-ne ("not equal").
Interestingly, all of these are the same in Fortran (
You can start with
help test, which will display the help of the POSIX subset of the syntax supported by the
A comprehensive documentation is in the
CONDITIONAL EXPRESSIONS section of
Other operators: ... arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne, -lt, -le, -gt, or -ge. Arithmetic binary operators return true if ARG1 is equal, not-equal, less-than, less-than-or-equal, greater-than, or greater-than-or-equal than ARG2.