NAME
	  test - Evaluates conditional expressions

     SYNOPSIS
	  test expression

	  [ expression ]


     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 0	(zero);	otherwise, it
	  returns a nonzero (false) exit value.	 The test command also
	  returns a nonzero exit value if there	are no arguments.

	  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 argu-
	  ments	to test.

	  The following	functions are used to construct	expression:


	  -e file
	      TRUE if file exists.

	  -r file
	      TRUE if file exists and has read permission.

	  -w file
	      TRUE if file exists and has write	permission.

	  -x file
	      TRUE if file exists and has execute permission.

	  -f file
	      TRUE if file exists and is a regular file.

	  -d file
	      TRUE if file exists and is a directory.

	  -c file
	      TRUE if file exists and is a character-special file.

	  -b file
	      TRUE if file exists and is a block-special file.

	  -p file
	      TRUE if file exists and is a named pipe (FIFO).

	  -u file
	      TRUE if file exists and its set-user ID bit is set.

	  -g file
	      TRUE if file exists and its set-group ID bit is set.

	  -k file
	      TRUE if file exists and its sticky bit is	set.

	  -s file
	      TRUE if file exists and has a size greater than 0
	      (zero).

	  -t [file_descriptor]
	      TRUE if the open file with file descriptor number
	      file_descriptor (1 by default) is	associated with	a ter-
	      minal device.

	  -z string1
	      TRUE if the length of string1 is 0 (zero).

	  -n string1
	      TRUE if the length of string1 is nonzero.

	  string1 = string2
	      TRUE if string1 and string2 are identical.

	  string1 != string2
	      TRUE if string1 and string2 are not identical.

	  string1
	      TRUE if string1 is not the null string.

	  number1 -eq number2
	      TRUE if the integers number1 and number2 are algebrai-
	      cally 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.

	  -a  Binary AND operator.

	  -o  Binary OR	operator (-a has higher	precedence than	-o).

	  \( expression	\)
	      Parentheses for grouping.	 There must be a space after
	      \( and before \).


     EXAMPLES
	   1.  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.
	       Note that there must be a space between -s and the
	       filename.

	       The double quotes around	$1 ensure that the test	will
	       work properly 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.

	   2.  To do a complex comparison, enter:

	       if [ $# -lt 2  -o  ! -s "$1" ]
	       then
		    exit
	       fi



	       If the shell procedure was given	fewer than two posi-
	       tional parameters or the	file specified by $1 does not
	       exist, then this	exits the shell	procedure.  The	spe-
	       cial shell variable $# represents the number of posi-
	       tional parameters entered on the	command	line that
	       started this shell procedure.

	       Note that there must be a space before and after	the [
	       character and before the	] character.  There must also
	       be a space before the -lt flag and before the -s	flag.


     EXIT VALUES
	  The test command evaluates expression	and, if	its value is
	  TRUE,	returns	an exit	value of 0 (zero); otherwise, it
	  returns a nonzero (FALSE) exit value;	the test command also
	  returns a nonzero exit value if there	are no arguments.
     RELATED INFORMATION
	  Commands:  csh(1), find(1), ksh(1), sh(1).


















































Acknowledgement and Disclaimer