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 36c263cc21SPhilippe Charnier.\" $Id: test.1,v 1.4 1997/02/22 14:06:23 peter Exp $ 374b88c807SRodney W. Grimes.\" 384b88c807SRodney W. Grimes.Dd May 31, 1993 394b88c807SRodney W. Grimes.Dt TEST 1 404b88c807SRodney W. Grimes.Os 414b88c807SRodney W. Grimes.Sh NAME 424b88c807SRodney W. Grimes.Nm test 434b88c807SRodney W. Grimes.Nd condition evaluation utility 444b88c807SRodney W. Grimes.Sh SYNOPSIS 454b88c807SRodney W. Grimes.Nm test 464b88c807SRodney W. Grimes.Ar expression 474b88c807SRodney W. Grimes.Sh DESCRIPTION 484b88c807SRodney W. GrimesThe 494b88c807SRodney W. Grimes.Nm test 504b88c807SRodney W. Grimesutility evaluates the expression and, if it evaluates 514b88c807SRodney W. Grimesto true, returns a zero (true) exit status; otherwise 524b88c807SRodney W. Grimesit returns 1 (false). 534b88c807SRodney W. GrimesIf there is no expression, test also 544b88c807SRodney W. Grimesreturns 1 (false). 554b88c807SRodney W. Grimes.Pp 564b88c807SRodney W. GrimesAll operators and flags are separate arguments to the 574b88c807SRodney W. Grimes.Nm test 584b88c807SRodney W. Grimesutility. 594b88c807SRodney W. Grimes.Pp 604b88c807SRodney W. GrimesThe following primaries are used to construct expression: 614b88c807SRodney W. Grimes.Bl -tag -width Ar 624b88c807SRodney W. Grimes.It Fl b Ar file 634b88c807SRodney W. GrimesTrue if 644b88c807SRodney W. Grimes.Ar file 654b88c807SRodney W. Grimesexists and is a block special 664b88c807SRodney W. Grimesfile. 674b88c807SRodney W. Grimes.It Fl c Ar file 684b88c807SRodney W. GrimesTrue if 694b88c807SRodney W. Grimes.Ar file 704b88c807SRodney W. Grimesexists and is a character 714b88c807SRodney W. Grimesspecial file. 724b88c807SRodney W. Grimes.It Fl d Ar file 734b88c807SRodney W. GrimesTrue if 744b88c807SRodney W. Grimes.Ar file 754b88c807SRodney W. Grimesexists and is a directory. 764b88c807SRodney W. Grimes.It Fl e Ar file 774b88c807SRodney W. GrimesTrue if 784b88c807SRodney W. Grimes.Ar file 794b88c807SRodney W. Grimesexists (regardless of type). 804b88c807SRodney W. Grimes.It Fl f Ar file 814b88c807SRodney W. GrimesTrue if 824b88c807SRodney W. Grimes.Ar file 834b88c807SRodney W. Grimesexists and is a regular file. 844b88c807SRodney W. Grimes.It Fl g Ar file 854b88c807SRodney W. GrimesTrue if 864b88c807SRodney W. Grimes.Ar file 874b88c807SRodney W. Grimesexists and its set group ID flag 884b88c807SRodney W. Grimesis set. 894b88c807SRodney W. Grimes.It Fl h Ar file 904b88c807SRodney W. GrimesTrue if 914b88c807SRodney W. Grimes.Ar file 924b88c807SRodney W. Grimesexists and is a symbolic link. 934b88c807SRodney W. Grimes.It Fl n Ar string 944b88c807SRodney W. GrimesTrue if the length of 954b88c807SRodney W. Grimes.Ar string 964b88c807SRodney W. Grimesis nonzero. 974b88c807SRodney W. Grimes.It Fl p Ar file 984b88c807SRodney W. GrimesTrue if 994b88c807SRodney W. Grimes.Ar file 1004b88c807SRodney W. Grimesis a named pipe 1014b88c807SRodney W. Grimes.Po Tn FIFO Pc . 1024b88c807SRodney W. Grimes.It Fl r Ar file 1034b88c807SRodney W. GrimesTrue if 104c263cc21SPhilippe Charnier.Ar file 105c263cc21SPhilippe Charnierexists and is readable. 1064b88c807SRodney W. Grimes.It Fl s Ar file 1074b88c807SRodney W. GrimesTrue if 1084b88c807SRodney W. Grimes.Ar file 1094b88c807SRodney W. Grimesexists and has a size greater 1104b88c807SRodney W. Grimesthan zero. 1114b88c807SRodney W. Grimes.It Fl t Ar [file_descriptor] 1124b88c807SRodney W. GrimesTrue if the file whose file descriptor number 1134b88c807SRodney W. Grimesis 1144b88c807SRodney W. Grimes.Ar file_descriptor 1154b88c807SRodney W. Grimes(default 1) is open and is 1164b88c807SRodney W. Grimesassociated with a terminal. 1174b88c807SRodney W. Grimes.It Fl u Ar file 1184b88c807SRodney W. GrimesTrue if 1194b88c807SRodney W. Grimes.Ar file 1204b88c807SRodney W. Grimesexists and its set user ID flag 1214b88c807SRodney W. Grimesis set. 1224b88c807SRodney W. Grimes.It Fl w Ar file 1234b88c807SRodney W. GrimesTrue if 1244b88c807SRodney W. Grimes.Ar file 1254b88c807SRodney W. Grimesexists and is writable. 1264b88c807SRodney W. GrimesTrue 1274b88c807SRodney W. Grimesindicates only that the write flag is on. 1284b88c807SRodney W. GrimesThe file is not writable on a read-only file 1294b88c807SRodney W. Grimessystem even if this test indicates true. 1304b88c807SRodney W. Grimes.It Fl x Ar file 1314b88c807SRodney W. GrimesTrue if 1324b88c807SRodney W. Grimes.Ar file 1334b88c807SRodney W. Grimesexists and is executable. 1344b88c807SRodney W. GrimesTrue 1354b88c807SRodney W. Grimesindicates only that the execute flag is on. 1364b88c807SRodney W. GrimesIf 1374b88c807SRodney W. Grimes.Ar file 1384b88c807SRodney W. Grimesis a directory, true indicates that 1394b88c807SRodney W. Grimes.Ar file 1404b88c807SRodney W. Grimescan be searched. 1414b88c807SRodney W. Grimes.It Fl z Ar string 1424b88c807SRodney W. GrimesTrue if the length of 1434b88c807SRodney W. Grimes.Ar string 1444b88c807SRodney W. Grimesis zero. 1454b88c807SRodney W. Grimes.It Ar string 1464b88c807SRodney W. GrimesTrue if 1474b88c807SRodney W. Grimes.Ar string 1484b88c807SRodney W. Grimesis not the null 1494b88c807SRodney W. Grimesstring. 1504b88c807SRodney W. Grimes.It Ar \&s\&1 Cm \&= Ar \&s\&2 1514b88c807SRodney W. GrimesTrue if the strings 1524b88c807SRodney W. Grimes.Ar \&s\&1 1534b88c807SRodney W. Grimesand 1544b88c807SRodney W. Grimes.Ar \&s\&2 1554b88c807SRodney W. Grimesare identical. 1564b88c807SRodney W. Grimes.It Ar \&s\&1 Cm \&!= Ar \&s\&2 1574b88c807SRodney W. GrimesTrue if the strings 1584b88c807SRodney W. Grimes.Ar \&s\&1 1594b88c807SRodney W. Grimesand 1604b88c807SRodney W. Grimes.Ar \&s\&2 1614b88c807SRodney W. Grimesare not identical. 1624b88c807SRodney W. Grimes.It Ar \&n\&1 Fl \&eq Ar \&n\&2 1634b88c807SRodney W. GrimesTrue if the integers 1644b88c807SRodney W. Grimes.Ar \&n\&1 1654b88c807SRodney W. Grimesand 1664b88c807SRodney W. Grimes.Ar \&n\&2 1674b88c807SRodney W. Grimesare algebraically 1684b88c807SRodney W. Grimesequal. 1694b88c807SRodney W. Grimes.It Ar \&n\&1 Fl \&ne Ar \&n\&2 1704b88c807SRodney W. GrimesTrue if the integers 1714b88c807SRodney W. Grimes.Ar \&n\&1 1724b88c807SRodney W. Grimesand 1734b88c807SRodney W. Grimes.Ar \&n\&2 1744b88c807SRodney W. Grimesare not 1754b88c807SRodney W. Grimesalgebraically equal. 1764b88c807SRodney W. Grimes.It Ar \&n\&1 Fl \> Ar \&n\&2 1774b88c807SRodney W. GrimesTrue if the integer 1784b88c807SRodney W. Grimes.Ar \&n\&1 1794b88c807SRodney W. Grimesis algebraically 1804b88c807SRodney W. Grimesgreater than the integer 1814b88c807SRodney W. Grimes.Ar \&n\&2 . 1824b88c807SRodney W. Grimes.It Ar \&n\&1 Fl \&ge Ar \&n\&2 1834b88c807SRodney W. GrimesTrue if the integer 1844b88c807SRodney W. Grimes.Ar \&n\&1 1854b88c807SRodney W. Grimesis algebraically 1864b88c807SRodney W. Grimesgreater than or equal to the integer 1874b88c807SRodney W. Grimes.Ar \&n\&2 . 1884b88c807SRodney W. Grimes.It Ar \&n\&1 Fl \< Ar \&n\&2 1894b88c807SRodney W. GrimesTrue if the integer 1904b88c807SRodney W. Grimes.Ar \&n\&1 1914b88c807SRodney W. Grimesis algebraically less 1924b88c807SRodney W. Grimesthan the integer 1934b88c807SRodney W. Grimes.Ar \&n\&2 . 1944b88c807SRodney W. Grimes.It Ar \&n\&1 Fl \&le Ar \&n\&2 1954b88c807SRodney W. GrimesTrue if the integer 1964b88c807SRodney W. Grimes.Ar \&n\&1 1974b88c807SRodney W. Grimesis algebraically less 1984b88c807SRodney W. Grimesthan or equal to the integer 1994b88c807SRodney W. Grimes.Ar \&n\&2 . 2004b88c807SRodney W. Grimes.El 2014b88c807SRodney W. Grimes.Pp 2024b88c807SRodney W. GrimesThese primaries can be combined with the following operators: 2034b88c807SRodney W. Grimes.Bl -tag -width Ar 2044b88c807SRodney W. Grimes.It Cm \&! Ar expression 2054b88c807SRodney W. GrimesTrue if 2064b88c807SRodney W. Grimes.Ar expression 2074b88c807SRodney W. Grimesis false. 2084b88c807SRodney W. Grimes.It Ar expression1 Fl a Ar expression2 2094b88c807SRodney W. GrimesTrue if both 2104b88c807SRodney W. Grimes.Ar expression1 2114b88c807SRodney W. Grimesand 2124b88c807SRodney W. Grimes.Ar expression2 2134b88c807SRodney W. Grimesare true. 2144b88c807SRodney W. Grimes.It Ar expression1 Fl o Ar expression2 2154b88c807SRodney W. GrimesTrue if either 2164b88c807SRodney W. Grimes.Ar expression1 2174b88c807SRodney W. Grimesor 2184b88c807SRodney W. Grimes.Ar expression2 2194b88c807SRodney W. Grimesare true. 2204b88c807SRodney W. Grimes.It Cm \&( Ns Ar expression Ns Cm \&) 2214b88c807SRodney W. GrimesTrue if expression is true. 2224b88c807SRodney W. Grimes.El 2234b88c807SRodney W. Grimes.Pp 2244b88c807SRodney W. GrimesThe 2254b88c807SRodney W. Grimes.Fl a 2264b88c807SRodney W. Grimesoperator has higher precedence than the 2274b88c807SRodney W. Grimes.Fl o 2284b88c807SRodney W. Grimesoperator. 2294b88c807SRodney W. Grimes.Sh GRAMMAR AMBIGUITY 2304b88c807SRodney W. GrimesThe 2314b88c807SRodney W. Grimes.Nm test 2324b88c807SRodney W. Grimesgrammar is inherently ambiguous. In order to assure a degree of consistency, 2334b88c807SRodney W. Grimesthe cases described in the 2344b88c807SRodney W. Grimes.St -p1003.2 , 2354b88c807SRodney W. Grimessection D11.2/4.62.4, standard 2364b88c807SRodney W. Grimesare evaluated consistently according to the rules specified in the 2374b88c807SRodney W. Grimesstandards document. All other cases are subject to the ambiguity in the 2384b88c807SRodney W. Grimescommand semantics. 2394b88c807SRodney W. Grimes.Sh RETURN VALUES 2404b88c807SRodney W. GrimesThe 2414b88c807SRodney W. Grimes.Nm test 2424b88c807SRodney W. Grimesutility exits with one of the following values: 2434b88c807SRodney W. Grimes.Bl -tag -width Ds 2444b88c807SRodney W. Grimes.It 0 2454b88c807SRodney W. Grimesexpression evaluated to true. 2464b88c807SRodney W. Grimes.It 1 2474b88c807SRodney W. Grimesexpression evaluated to false or expression was 2484b88c807SRodney W. Grimesmissing. 2494b88c807SRodney W. Grimes.It >1 2504b88c807SRodney W. GrimesAn error occurred. 2514b88c807SRodney W. Grimes.El 2524b88c807SRodney W. Grimes.Sh STANDARDS 2534b88c807SRodney W. GrimesThe 2544b88c807SRodney W. Grimes.Nm test 2554b88c807SRodney W. Grimesfunction is expected to be 2564b88c807SRodney W. Grimes.St -p1003.2 2574b88c807SRodney W. Grimescompatible. 258