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 \> 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 \< 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