TEST
Section: User Commands (1)
Index
Return to Main Contents
BSD mandoc
NAME
test
- Condition evaluation utility.
SYNOPSIS
test
expression
DESCRIPTION
The
test
utility evaluates the expression and, if it evaluates
to true, returns a zero (true) exit status; otherwise
it returns 1 (false).
If there is no expression, test also
returns 1 (false).
All operators and flags are separate arguments to the
test
utility.
The following primaries are used to construct expression:
- -b file
-
True if
file
exists and is a block special
file.
- -c file
-
True if
file
exists and is a character
special file.
- -d file
-
True if
file
exists and is a directory.
- -e file
-
True if
file
exists (regardless of type).
- -f file
-
True if
file
exists and is a regular file.
- -g file
-
True if
file
exists and its set group ID flag
is set.
- -n string
-
True if the length of
string
is nonzero.
- -p file
-
True if
file
is a named pipe
Po Tn FIFO Pc .
- -r file
-
True if
file exists and is readable.
- -s file
-
True if
file
exists and has a size greater
than zero.
- -t [file_descriptor]
-
True if the file whose file descriptor number
is
file_descriptor
(default 1) is open and is
associated with a terminal.
- -u file
-
True if
file
exists and its set user ID flag
is set.
- -w file
-
True if
file
exists and is writable.
True
indicates only that the write flag is on.
The file is not writable on a read-only file
system even if this test indicates true.
- -x file
-
True if
file
exists and is executable.
True
indicates only that the execute flag is on.
If
file
is a directory, true indicates that
file
can be searched.
- -z string
-
True if the length of
string
is zero.
- string
-
True if
string
is not the null
string.
- s1 = s2
-
True if the strings
s1
and
s2
are identical.
- s1 != s2
-
True if the strings
s1
and
s2
are not identical.
- n1 -eq n2
-
True if the integers
n1
and
n2
are algebraically
equal.
- n1 -ne n2
-
True if the integers
n1
and
n2
are not
algebraically equal.
- n1 -gt n2
-
True if the integer
n1
is algebraically
greater than the integer
n2
- n1 -ge n2
-
True if the integer
n1
is algebraically
greater than or equal to the integer
n2
- n1 -lt n2
-
True if the integer
n1
is algebraically less
than the integer
n2
- n1 -le n2
-
True if the integer
n1
is algebraically less
than or equal to the integer
n2
These primaries can be combined with the following operators:
- ! expression
-
True if
expression
is false.
- expression1 -a expression2
-
True if both
expression1
and
expression2
are true.
- expression1 -o expression2
-
True if either
expression1
or
expression2
are true.
- ( expression )
-
True if expression is true.
The
-a
operator has higher precedence than the
-o
operator.
GRAMMAR AMBIGUITY
The
test
grammar is inherently ambiguous. In order to assure a degree of consistency,
the cases described in the
St -p1003.2 ,
section D11.2/4.62.4, standard
are evaluated consistently according to the rules specified in the
standards document. All other cases are subject to the ambiguity in the
command semantics.
RETURN VALUES
The
test
utility exits with one of the following values:
- 0
-
expression evaluated to true.
- 1
-
expression evaluated to false or expression was
missing.
- >1
-
An error occurred.
STANDARDS
The
test
function is expected to be
St -p1003.2
compatible.
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- GRAMMAR AMBIGUITY
-
- RETURN VALUES
-
- STANDARDS
-
This document was created by
man2html,
using the manual pages.
Time: 06:39:20 GMT, May 19, 2025