xref: /freebsd/bin/test/test.1 (revision 4b88c807ea9c629dc5691abc7e3cac9ea0d776dd)
14b88c807SRodney W. Grimes.\" Copyright (c) 1991, 1993
24b88c807SRodney W. Grimes.\"	The Regents of the University of California.  All rights reserved.
34b88c807SRodney W. Grimes.\"
44b88c807SRodney W. Grimes.\" This code is derived from software contributed to Berkeley by
54b88c807SRodney W. Grimes.\" the Institute of Electrical and Electronics Engineers, Inc.
64b88c807SRodney W. Grimes.\"
74b88c807SRodney W. Grimes.\" Redistribution and use in source and binary forms, with or without
84b88c807SRodney W. Grimes.\" modification, are permitted provided that the following conditions
94b88c807SRodney W. Grimes.\" are met:
104b88c807SRodney W. Grimes.\" 1. Redistributions of source code must retain the above copyright
114b88c807SRodney W. Grimes.\"    notice, this list of conditions and the following disclaimer.
124b88c807SRodney W. Grimes.\" 2. Redistributions in binary form must reproduce the above copyright
134b88c807SRodney W. Grimes.\"    notice, this list of conditions and the following disclaimer in the
144b88c807SRodney W. Grimes.\"    documentation and/or other materials provided with the distribution.
154b88c807SRodney W. Grimes.\" 3. All advertising materials mentioning features or use of this software
164b88c807SRodney W. Grimes.\"    must display the following acknowledgement:
174b88c807SRodney W. Grimes.\"	This product includes software developed by the University of
184b88c807SRodney W. Grimes.\"	California, Berkeley and its contributors.
194b88c807SRodney W. Grimes.\" 4. Neither the name of the University nor the names of its contributors
204b88c807SRodney W. Grimes.\"    may be used to endorse or promote products derived from this software
214b88c807SRodney W. Grimes.\"    without specific prior written permission.
224b88c807SRodney W. Grimes.\"
234b88c807SRodney W. Grimes.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
244b88c807SRodney W. Grimes.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
254b88c807SRodney W. Grimes.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
264b88c807SRodney W. Grimes.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
274b88c807SRodney W. Grimes.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
284b88c807SRodney W. Grimes.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
294b88c807SRodney W. Grimes.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
304b88c807SRodney W. Grimes.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
314b88c807SRodney W. Grimes.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
324b88c807SRodney W. Grimes.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
334b88c807SRodney W. Grimes.\" SUCH DAMAGE.
344b88c807SRodney W. Grimes.\"
354b88c807SRodney W. Grimes.\"     @(#)test.1	8.1 (Berkeley) 5/31/93
364b88c807SRodney W. Grimes.\"
374b88c807SRodney W. Grimes.Dd May 31, 1993
384b88c807SRodney W. Grimes.Dt TEST 1
394b88c807SRodney W. Grimes.Os
404b88c807SRodney W. Grimes.Sh NAME
414b88c807SRodney W. Grimes.Nm test
424b88c807SRodney W. Grimes.Nd condition evaluation utility
434b88c807SRodney W. Grimes.Sh SYNOPSIS
444b88c807SRodney W. Grimes.Nm test
454b88c807SRodney W. Grimes.Ar expression
464b88c807SRodney W. Grimes.Sh DESCRIPTION
474b88c807SRodney W. GrimesThe
484b88c807SRodney W. Grimes.Nm test
494b88c807SRodney W. Grimesutility evaluates the expression and, if it evaluates
504b88c807SRodney W. Grimesto true, returns a zero (true) exit status; otherwise
514b88c807SRodney W. Grimesit returns 1 (false).
524b88c807SRodney W. GrimesIf there is no expression, test also
534b88c807SRodney W. Grimesreturns 1 (false).
544b88c807SRodney W. Grimes.Pp
554b88c807SRodney W. GrimesAll operators and flags are separate arguments to the
564b88c807SRodney W. Grimes.Nm test
574b88c807SRodney W. Grimesutility.
584b88c807SRodney W. Grimes.Pp
594b88c807SRodney W. GrimesThe following primaries are used to construct expression:
604b88c807SRodney W. Grimes.Bl -tag -width Ar
614b88c807SRodney W. Grimes.It Fl b Ar file
624b88c807SRodney W. GrimesTrue if
634b88c807SRodney W. Grimes.Ar file
644b88c807SRodney W. Grimesexists and is a block special
654b88c807SRodney W. Grimesfile.
664b88c807SRodney W. Grimes.It Fl c Ar file
674b88c807SRodney W. GrimesTrue if
684b88c807SRodney W. Grimes.Ar file
694b88c807SRodney W. Grimesexists and is a character
704b88c807SRodney W. Grimesspecial file.
714b88c807SRodney W. Grimes.It Fl d Ar file
724b88c807SRodney W. GrimesTrue if
734b88c807SRodney W. Grimes.Ar file
744b88c807SRodney W. Grimesexists and is a directory.
754b88c807SRodney W. Grimes.It Fl e Ar file
764b88c807SRodney W. GrimesTrue if
774b88c807SRodney W. Grimes.Ar file
784b88c807SRodney W. Grimesexists (regardless of type).
794b88c807SRodney W. Grimes.It Fl f Ar file
804b88c807SRodney W. GrimesTrue if
814b88c807SRodney W. Grimes.Ar file
824b88c807SRodney W. Grimesexists and is a regular file.
834b88c807SRodney W. Grimes.It Fl g Ar file
844b88c807SRodney W. GrimesTrue if
854b88c807SRodney W. Grimes.Ar file
864b88c807SRodney W. Grimesexists and its set group ID flag
874b88c807SRodney W. Grimesis set.
884b88c807SRodney W. Grimes.It Fl h Ar file
894b88c807SRodney W. GrimesTrue if
904b88c807SRodney W. Grimes.Ar file
914b88c807SRodney W. Grimesexists and is a symbolic link.
924b88c807SRodney W. Grimes.It Fl n Ar string
934b88c807SRodney W. GrimesTrue if the length of
944b88c807SRodney W. Grimes.Ar string
954b88c807SRodney W. Grimesis nonzero.
964b88c807SRodney W. Grimes.It Fl p Ar file
974b88c807SRodney W. GrimesTrue if
984b88c807SRodney W. Grimes.Ar file
994b88c807SRodney W. Grimesis a named pipe
1004b88c807SRodney W. Grimes.Po Tn FIFO Pc .
1014b88c807SRodney W. Grimes.It Fl r Ar file
1024b88c807SRodney W. GrimesTrue if
1034b88c807SRodney W. Grimes.Ar file exists and is readable.
1044b88c807SRodney W. Grimes.It Fl s Ar file
1054b88c807SRodney W. GrimesTrue if
1064b88c807SRodney W. Grimes.Ar file
1074b88c807SRodney W. Grimesexists and has a size greater
1084b88c807SRodney W. Grimesthan zero.
1094b88c807SRodney W. Grimes.It Fl t Ar [file_descriptor]
1104b88c807SRodney W. GrimesTrue if the file whose file descriptor number
1114b88c807SRodney W. Grimesis
1124b88c807SRodney W. Grimes.Ar file_descriptor
1134b88c807SRodney W. Grimes(default 1) is open and is
1144b88c807SRodney W. Grimesassociated with a terminal.
1154b88c807SRodney W. Grimes.It Fl u Ar file
1164b88c807SRodney W. GrimesTrue if
1174b88c807SRodney W. Grimes.Ar file
1184b88c807SRodney W. Grimesexists and its set user ID flag
1194b88c807SRodney W. Grimesis set.
1204b88c807SRodney W. Grimes.It Fl w Ar file
1214b88c807SRodney W. GrimesTrue if
1224b88c807SRodney W. Grimes.Ar file
1234b88c807SRodney W. Grimesexists and is writable.
1244b88c807SRodney W. GrimesTrue
1254b88c807SRodney W. Grimesindicates only that the write flag is on.
1264b88c807SRodney W. GrimesThe file is not writable on a read-only file
1274b88c807SRodney W. Grimessystem even if this test indicates true.
1284b88c807SRodney W. Grimes.It Fl x Ar file
1294b88c807SRodney W. GrimesTrue if
1304b88c807SRodney W. Grimes.Ar file
1314b88c807SRodney W. Grimesexists and is executable.
1324b88c807SRodney W. GrimesTrue
1334b88c807SRodney W. Grimesindicates only that the execute flag is on.
1344b88c807SRodney W. GrimesIf
1354b88c807SRodney W. Grimes.Ar file
1364b88c807SRodney W. Grimesis a directory, true indicates that
1374b88c807SRodney W. Grimes.Ar file
1384b88c807SRodney W. Grimescan be searched.
1394b88c807SRodney W. Grimes.It Fl z Ar string
1404b88c807SRodney W. GrimesTrue if the length of
1414b88c807SRodney W. Grimes.Ar string
1424b88c807SRodney W. Grimesis zero.
1434b88c807SRodney W. Grimes.It Ar string
1444b88c807SRodney W. GrimesTrue if
1454b88c807SRodney W. Grimes.Ar string
1464b88c807SRodney W. Grimesis not the null
1474b88c807SRodney W. Grimesstring.
1484b88c807SRodney W. Grimes.It Ar \&s\&1 Cm \&= Ar \&s\&2
1494b88c807SRodney W. GrimesTrue if the strings
1504b88c807SRodney W. Grimes.Ar \&s\&1
1514b88c807SRodney W. Grimesand
1524b88c807SRodney W. Grimes.Ar \&s\&2
1534b88c807SRodney W. Grimesare identical.
1544b88c807SRodney W. Grimes.It Ar \&s\&1 Cm \&!= Ar \&s\&2
1554b88c807SRodney W. GrimesTrue if the strings
1564b88c807SRodney W. Grimes.Ar \&s\&1
1574b88c807SRodney W. Grimesand
1584b88c807SRodney W. Grimes.Ar \&s\&2
1594b88c807SRodney W. Grimesare not identical.
1604b88c807SRodney W. Grimes.It Ar \&n\&1 Fl \&eq Ar \&n\&2
1614b88c807SRodney W. GrimesTrue if the integers
1624b88c807SRodney W. Grimes.Ar \&n\&1
1634b88c807SRodney W. Grimesand
1644b88c807SRodney W. Grimes.Ar \&n\&2
1654b88c807SRodney W. Grimesare algebraically
1664b88c807SRodney W. Grimesequal.
1674b88c807SRodney W. Grimes.It Ar \&n\&1 Fl \&ne Ar \&n\&2
1684b88c807SRodney W. GrimesTrue if the integers
1694b88c807SRodney W. Grimes.Ar \&n\&1
1704b88c807SRodney W. Grimesand
1714b88c807SRodney W. Grimes.Ar \&n\&2
1724b88c807SRodney W. Grimesare not
1734b88c807SRodney W. Grimesalgebraically equal.
1744b88c807SRodney W. Grimes.It Ar \&n\&1 Fl \&gt Ar \&n\&2
1754b88c807SRodney W. GrimesTrue if the integer
1764b88c807SRodney W. Grimes.Ar \&n\&1
1774b88c807SRodney W. Grimesis algebraically
1784b88c807SRodney W. Grimesgreater than the integer
1794b88c807SRodney W. Grimes.Ar \&n\&2 .
1804b88c807SRodney W. Grimes.It Ar \&n\&1 Fl \&ge Ar \&n\&2
1814b88c807SRodney W. GrimesTrue if the integer
1824b88c807SRodney W. Grimes.Ar \&n\&1
1834b88c807SRodney W. Grimesis algebraically
1844b88c807SRodney W. Grimesgreater than or equal to the integer
1854b88c807SRodney W. Grimes.Ar \&n\&2 .
1864b88c807SRodney W. Grimes.It Ar \&n\&1 Fl \&lt Ar \&n\&2
1874b88c807SRodney W. GrimesTrue if the integer
1884b88c807SRodney W. Grimes.Ar \&n\&1
1894b88c807SRodney W. Grimesis algebraically less
1904b88c807SRodney W. Grimesthan the integer
1914b88c807SRodney W. Grimes.Ar \&n\&2 .
1924b88c807SRodney W. Grimes.It Ar \&n\&1 Fl \&le Ar \&n\&2
1934b88c807SRodney W. GrimesTrue if the integer
1944b88c807SRodney W. Grimes.Ar \&n\&1
1954b88c807SRodney W. Grimesis algebraically less
1964b88c807SRodney W. Grimesthan or equal to the integer
1974b88c807SRodney W. Grimes.Ar \&n\&2 .
1984b88c807SRodney W. Grimes.El
1994b88c807SRodney W. Grimes.Pp
2004b88c807SRodney W. GrimesThese primaries can be combined with the following operators:
2014b88c807SRodney W. Grimes.Bl -tag -width Ar
2024b88c807SRodney W. Grimes.It Cm \&! Ar expression
2034b88c807SRodney W. GrimesTrue if
2044b88c807SRodney W. Grimes.Ar expression
2054b88c807SRodney W. Grimesis false.
2064b88c807SRodney W. Grimes.It Ar expression1 Fl a Ar expression2
2074b88c807SRodney W. GrimesTrue if both
2084b88c807SRodney W. Grimes.Ar expression1
2094b88c807SRodney W. Grimesand
2104b88c807SRodney W. Grimes.Ar expression2
2114b88c807SRodney W. Grimesare true.
2124b88c807SRodney W. Grimes.It Ar expression1 Fl o Ar expression2
2134b88c807SRodney W. GrimesTrue if either
2144b88c807SRodney W. Grimes.Ar expression1
2154b88c807SRodney W. Grimesor
2164b88c807SRodney W. Grimes.Ar expression2
2174b88c807SRodney W. Grimesare true.
2184b88c807SRodney W. Grimes.It Cm \&( Ns Ar expression Ns Cm \&)
2194b88c807SRodney W. GrimesTrue if expression is true.
2204b88c807SRodney W. Grimes.El
2214b88c807SRodney W. Grimes.Pp
2224b88c807SRodney W. GrimesThe
2234b88c807SRodney W. Grimes.Fl a
2244b88c807SRodney W. Grimesoperator has higher precedence than the
2254b88c807SRodney W. Grimes.Fl o
2264b88c807SRodney W. Grimesoperator.
2274b88c807SRodney W. Grimes.Sh GRAMMAR AMBIGUITY
2284b88c807SRodney W. GrimesThe
2294b88c807SRodney W. Grimes.Nm test
2304b88c807SRodney W. Grimesgrammar is inherently ambiguous.  In order to assure a degree of consistency,
2314b88c807SRodney W. Grimesthe cases described in the
2324b88c807SRodney W. Grimes.St -p1003.2 ,
2334b88c807SRodney W. Grimessection D11.2/4.62.4, standard
2344b88c807SRodney W. Grimesare evaluated consistently according to the rules specified in the
2354b88c807SRodney W. Grimesstandards document.  All other cases are subject to the ambiguity in the
2364b88c807SRodney W. Grimescommand semantics.
2374b88c807SRodney W. Grimes.Sh RETURN VALUES
2384b88c807SRodney W. GrimesThe
2394b88c807SRodney W. Grimes.Nm test
2404b88c807SRodney W. Grimesutility exits with one of the following values:
2414b88c807SRodney W. Grimes.Bl -tag -width Ds
2424b88c807SRodney W. Grimes.It 0
2434b88c807SRodney W. Grimesexpression evaluated to true.
2444b88c807SRodney W. Grimes.It 1
2454b88c807SRodney W. Grimesexpression evaluated to false or expression was
2464b88c807SRodney W. Grimesmissing.
2474b88c807SRodney W. Grimes.It >1
2484b88c807SRodney W. GrimesAn error occurred.
2494b88c807SRodney W. Grimes.El
2504b88c807SRodney W. Grimes.Sh STANDARDS
2514b88c807SRodney W. GrimesThe
2524b88c807SRodney W. Grimes.Nm test
2534b88c807SRodney W. Grimesfunction is expected to be
2544b88c807SRodney W. Grimes.St -p1003.2
2554b88c807SRodney W. Grimescompatible.
256