Table B.5. Test Operators
|
|
Operator
|
True If...
|
|
-b file
|
file exists and is a block device file
|
|
-c file
|
file exists and is a character device file
|
|
-d file
|
file exists and is a directory
|
|
-e file
|
file exists
|
|
-f file
|
file exists and is a regular file
|
|
-g file
|
file exists and has its setgid bit set
|
|
-G file
|
file exists and
is owned by the effective group ID
|
|
-k file
|
file exists and
has its sticky bit set
|
|
-L file
|
file exists and
is a symbolic link
|
|
-n string
|
string is non-null
|
|
-O file
|
file exists and
is owned by the effective user ID
|
|
-p file
|
file exists and
is a pipe or named pipe (FIFO file)
|
|
-r file
|
file exists and
is readable
|
|
-s file
|
file exists and
is not empty
|
|
-S file
|
file exists and
is a socket
|
|
-t N
|
File descriptor N points to a
terminal
|
|
-u file
|
file exists and
has its setuid bit set
|
|
-w file
|
file exists and
is writeable
|
|
-x file
|
file exists and is executable, or file
is a directory that can be searched
|
|
-z string
|
string has a
length of zero
|
|
fileA -nt fileB
|
fileA is newer
than fileB
|
|
fileA -ot fileB
|
fileA is older
than fileB
|
|
fileA -ef fileB
|
fileA and fileB point to the same file
|
|
stringA = stringB
|
stringA equals stringB
|
|
stringA != stringB
|
stringA does not match stringB
|
|
stringA < stringB
|
stringA sorts before stringB
lexicographically
|
|
stringA > stringB
|
stringA sorts after stringB
lexicographically
|
|
exprA -eq exprB
|
Arithmetic expressions exprA and
exprB are equal
|
|
exprA -ne exprB
|
Arithmetic expressions exprA and
exprB are not equal
|
|
exprA -lt exprB
|
exprA is less than exprB
|
|
exprA -gt exprB
|
exprA is greater than exprB
|
|
exprA -le exprB
|
exprA is less than or equal to exprB
|
|
exprA -ge exprB
|
exprA is greater than or equal to exprB
|
|
exprA -a exprB
|
exprA is true and exprB
is true
|
|
exprA -o exprB
|
exprA is true or exprB
is true
|