harakit/docs/intcmp.1

90 lines
2.3 KiB
Groff
Raw Normal View History

.\" Copyright (c) 20232024 DTB <trinity@trinity.moe>
.\" Copyright (c) 20232024 Emma Tebibyte <emma@tebibyte.media>
.\"
.\" This work is licensed under CC BY-SA 4.0. To see a copy of this license,
.\" visit <http://creativecommons.org/licenses/by-sa/4.0/>.
.\"
.TH INTCMP 1
.SH NAME
intcmp \(en compare integers
.\"
.SH SYNOPSIS
.\"
intcmp
.RB ( -egl )
.RB [ integer ]
.RB [ integer... ]
.SH DESCRIPTION
Compare integers to each other.
.SH OPTIONS
.IP \fB-e\fP
Permits given integers to be equal to each other.
.IP \fB-g\fP
Permits a given integer to be greater than the following integer.
.IP \fB-l\fP
Permits a given integer to be less than the following integer.
.SH EXAMPLES
.\"
It may help to think of the -e, -g, and -l options as equivalent to the
infix algebraic \(lq=\(rq, \(lq>\(rq, and \(lq<\(rq operators respectively, with
each option putting its symbol between every given integer. The following
example is equivalent to evaluating \(lq1 < 2 < 3\(rq:
.RS
.R intcmp -l 1 2 3
.RE
.\"
.SH DIAGNOSTICS
.\"
The program will exit with a status code of 0 for a valid expression and with a
code of 1 for an invalid expression.
In the event of an error, a debug message will be printed and the program will
exit with the appropriate
.BR sysexits.h (3)
error code.
.\"
.SH BUGS
.\"
-egl, \(lqequal to or less than or greater than\(rq, exits 0 no matter what for
valid program usage and may be abused to function as an integer validator. Use
.BR str (1)
instead.
.\"
.SH CAVEATS
.\"
There are multiple ways to express compound comparisons; \(lqless than or equal
to\(rq can be -le or -el, for example.
The inequality comparison is -gl or -lg for \(lqless than or greater than\(rq;
this is elegant but unintuitive.
.\"
.SH RATIONALE
.\"
The traditional tool for integer comparisons in POSIX and other Unix shells has
been
.BR test (1).
This tool also handles string comparisons and file scrutiny. These parts of its
functionality have been broken out into multiple utilities.
This program\(cqs functionality may be performed on a POSIX-compliant system
with
.BR test (1p).
.\"
.SH AUTHOR
.\"
Written by DTB
.MT trinity@trinity.moe
.ME .
.\"
.SH COPYRIGHT
.\"
Copyright \(co 2023 DTB. License AGPLv3+: GNU AGPL version 3 or later
<https://gnu.org/licenses/gpl.html>.
.\"
.SH SEE ALSO
.BR scrut (1),
.BR strcmp (1),
.BR str (1),
.BR test (1p)