test(1) [v7 man page]
TEST(1) General Commands Manual TEST(1) NAME
test - condition command SYNOPSIS
test expr DESCRIPTION
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. SEE ALSO
sh(1), find(1) TEST(1)
Check Out this Related Man Page
TEST(1) General Commands Manual TEST(1) 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. -h file True if file exists and is a symbolic link. -n string True if the length of string is nonzero. -p file True if file is a named pipe -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 IEEE Std 1003.2 ("POSIX"), 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. BUGS
Named pipes are not implemented in 2.11BSD. STANDARDS
The test function is expected to be IEEE Std 1003.2 ("POSIX") compatible. 7th Edition March 13, 1995 TEST(1)