Manual Page Result
0
Command: test | Section: 1 | Source: Digital UNIX | File: test.1.gz
test(1) General Commands Manual test(1)
NAME
test, [ - Evaluates conditional expressions
SYNOPSIS
test [expression]
[[expression]]
STANDARDS
Interfaces documented on this reference page conform to industry stan-
dards as follows:
test: XPG4, XPG4-UNIX
[: XPG4, XPG4-UNIX
Refer to the standards(5) reference page for more information about in-
dustry standards and associated tags.
OPTIONS
None
OPERANDS
The expression to be evaluated as true or false. This expression is
constructed from the operators and elements explained in the DESCRIP-
TION section.
DESCRIPTION
The test command evaluates an expression constructed of functions and
operators. If the value of expression is true, test returns an exit
value of zero (0); otherwise, it returns FALSE, a nonzero exit value.
The test command also returns a nonzero exit value if there are no ar-
guments.
The alternate form of the command surrounds expression with brackets ([
]). When you use this form, you must surround the brackets with
spaces.
The test Expressions
All of the listed functions and operators are separate arguments to
test.
The following functions are used to construct expression: TRUE if file
exists and has read permission. TRUE if file exists and has write per-
mission. TRUE if file exists and has execute permission. TRUE if file
exists and is a regular file. TRUE if file exists and is a directory.
TRUE if file exists. TRUE if file exists and is a character-special
file. TRUE if file exists and is a block-special file. TRUE if file
exists and is a named pipe (FIFO). [DIGITAL] TRUE if file exists and
is a soft link. Synonym for -L expression. TRUE if file exists and is
a soft link. Synonym for -h expression. TRUE if file exists and its
set-user ID bit is set. TRUE if file exists and its set-group ID bit
is set. [DIGITAL] TRUE if file exists and its sticky bit is set.
TRUE if file exists and has a size greater than zero (0). TRUE if the
open file with file descriptor number file_descriptor (1 by default) is
associated with a terminal device. TRUE if the length of string1 is
zero (0). TRUE if the length of string1 is nonzero. TRUE if string1
and string2 are identical. TRUE if string1 and string2 are not identi-
cal. TRUE if string1 is not the null string. TRUE if the integers
number1 and number2 are algebraically equal. Any of the comparisons
-ne, -gt, -ge, -lt, and -le can be used in place of -eq.
The listed functions can be combined with the following operators:
Unary negation operator. Binary AND operator. Binary OR operator (the
-a operator has higher precedence than the -o operator). [DIGI-
TAL] Parentheses for grouping.
EXIT STATUS
The following exit values are returned: The test command evaluated ex-
pression and its value is TRUE. The test command evaluated expression
and is value is FALSE, or there are no arguments. An error occurred.
EXAMPLES
To test whether a file exists and is not empty, enter: if test ! -s
"$1" then echo $1 does not exist or is empty. fi
If the file specified by the first positional parameter to the
shell procedure does not exist, this displays an error message.
If $1 exists, it displays nothing. There must be a space be-
tween -s expression and the file name.
The double quotes around $1 ensure that the test will work prop-
erly even if the value of $1 is the empty string. If the double
quotes are omitted and $1 is the empty string, test displays the
error message test: parameter expected. To do a complex compar-
ison, enter: if [ $# -lt 2 -o ! -s "$1" ] then exit fi
If the shell procedure was given fewer than two positional para-
meters or the file specified by $1 does not exist, then this ex-
its the shell procedure. The special shell variable $# repre-
sents the number of positional parameters entered on the command
line that started this shell procedure.
ENVIRONMENT VARIABLES
The following environment variables affect the execution of test: Pro-
vides a default value for the internationalization variables that are
unset or null. If LANG is unset or null, the corresponding value from
the default locale is used. If any of the internationalization vari-
ables contain an invalid setting, the utility behaves as if none of the
variables had been defined. If set to a non-empty string value, over-
rides the values of all the other internationalization variables. De-
termines the locale for the interpretation of sequences of bytes of
text data as characters (for example, single-byte as opposed to multi-
byte characters in arguments). Determines the locale for the format
and contents of diagnostic messages written to standard error. Deter-
mines the location of message catalogues for the processing of LC_MES-
SAGES.
SEE ALSO
Commands: csh(1), find(1), ksh(1), Bourne shell sh(1b), POSIX shell
sh(1p)
Standards: standards(5)
test(1)