Revision [1075]

This is an old revision of CommandTest made by DavidLee on 2009-11-30 11:28:17.

 

Command test


Synopsis

test expr
[ expr ]

The test command evaluates an expression and returns true or false (0,1) as its exit value.
The test command is aliased as "[" which is the typical use.

An omitted EXPRESSION defaults to false. Otherwise, EXPRESSION is true
or false and sets exit status. It is one of:

( EXPRESSION )
EXPRESSION is true

! EXPRESSION
EXPRESSION is false

EXPRESSION1 -a EXPRESSION2
both EXPRESSION1 and EXPRESSION2 are true

EXPRESSION1 -o EXPRESSION2
either EXPRESSION1 or EXPRESSION2 is true

-n STRING
the length of STRING is nonzero

STRING
equivalent to -n STRING

-z STRING
the length of STRING is zero

-D name
true if the environment variable "name" is defined

-S value
true if the value/argument is a string type (not an xml type)

-X value
true if the value/argument is an xml type


STRING1 = STRING2
the strings are equal

STRING1 != STRING2
the strings are not equal

INTEGER1 -eq INTEGER2
INTEGER1 is equal to INTEGER2

INTEGER1 -ge INTEGER2
INTEGER1 is greater than or equal to INTEGER2

INTEGER1 -gt INTEGER2
INTEGER1 is greater than INTEGER2

INTEGER1 -le INTEGER2
INTEGER1 is less than or equal to INTEGER2

INTEGER1 -lt INTEGER2
INTEGER1 is less than INTEGER2

INTEGER1 -ne INTEGER2
INTEGER1 is not equal to INTEGER2

FILE1 -ef FILE2
FILE1 and FILE2 have the same cananocal path

FILE1 -nt FILE2
FILE1 is newer (modification date) than FILE2

FILE1 -ot FILE2
FILE1 is older than FILE2


-d FILE
FILE exists and is a directory

-e FILE
FILE exists

-f FILE
FILE exists and is a regular file

-r FILE
FILE exists and read permission is granted

-s FILE
FILE exists and has a size greater than zero

-w FILE
FILE exists and write permission is granted

-x FILE
FILE exists and execute (or search) permission is granted

-u string
TRUE if string is formated as an absolute URI (starts with <scheme>: )

Beware that parentheses need to be escaped (e.g., by back-
slashes) for shells. INTEGER may also be -l STRING, which evaluates to
the length of STRING.

XML Expressions


An XML Expression within the test command is evaluated to boolean and the result used for the expression.
A simplistic example

[ <[ fn:true() ]> ] && echo true


A more interesting example

a=<[ <foo attr="bar"/> ]>
if [ <[ $a/@attr eq 'bar' ]> ] ; then   
   echo attr is bar
fi


Note the spaces needed before and after the [ and ]





Commands
CategoryCommands

There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki