TEST(1) General Commands Manual TEST(1)
test - condition command
test evaluates the expression expr, and if its value is true then
returns zero exit status; otherwise, a non zero exit status is
returned. test returns a non zero exit if there are no arguments.
The following primitives are used to construct expr.
-r file true if the file exists and is readable.
-w file true if the file exists and is writable.
-f file true if the file exists and is not a directory.
-d file true if the file exists and is a directory.
-s file true if the file exists and has a size greater than zero.
-t [ fildes ]
true if the open file whose file descriptor number is fildes
(1 by default) is associated with a terminal device.
-z s1 true if the length of string s1 is zero.
-n s1 true if the length of the string s1 is nonzero.
s1 = s2 true if the strings s1 and s2 are equal.
s1 != s2 true if the strings s1 and s2 are not equal.
s1 true if s1 is not the null string.
n1 -eq n2
true if the integers n1 and n2 are algebraically equal. Any
of the comparisons -ne, -gt, -ge, -lt, or -le may be used in
place of -eq.
These primaries may be combined with the following operators:
! unary negation operator
-a binary and operator
-o binary or operator
( expr )
parentheses for grouping.
-a has higher precedence than -o. Notice that all the operators and
flags are separate arguments to test. Notice also that parentheses are
meaningful to the Shell and must be escaped.