-->
Previous | Table of Contents | Next |
In bash and pdksh, a command called test is used to evaluate conditional expressions. You would typically use the test command to evaluate a condition that is used in a conditional statement or to evaluate the entrance or exit criteria for an iteration statement. The test command has the following syntax:
test expression
or
[ expression ]
Several built-in operators can be used with the test command. These operators can be classified into four groups: integer operators, string operators, file operators, and logical operators.
The shell integer operators perform similar functions to the string operators except that they act on integer arguments. Table 14.2 lists the test commands integer operators.
Operator | Meaning |
---|---|
int1 -eq int2 | Returns True if int1 is equal to int2. |
int1 -ge int2 | Returns True if int1 is greater than or equal to int2. |
int1 -gt int2 | Returns True if int1 is greater than int2. |
int1 -le int2 | Returns True if int1 is less than or equal to int2. |
int1 -lt int2 | Returns True if int1 is less than int2. |
int1 -ne int2 | Returns True if int1 is not equal to int2. |
The string operators are used to evaluate string expressions. Table 14.3 lists the string operators that are supported by the three shell programming languages.
Operator | Meaning |
---|---|
str1 = str2 | Returns True if str1 is identical to str2. |
str1 != str2 | Returns True if str1 is not identical to str2. |
str | Returns True if str is not null. |
-n str | Returns True if the length of str is greater than zero. |
-z str | Returns True if the length of str is equal to zero. |
The test commands file operators are used to perform functions such as checking to see whether a file exists and checking to see what kind of file is passed as an argument to the test command. Table 14.4 lists the test commands file operators.
Operator | Meaning |
---|---|
-d filename | Returns True if file, filename is a directory. |
-f filename | Returns True if file, filename is an ordinary file. |
-r filename | Returns True if file, filename can be read by the process. |
-s filename | Returns True if file, filename has a nonzero length. |
-w filename | Returns True if file, filename can be written by the process. |
-x filename | Returns True if file, filename is executable. |
The test commands logical operators are used to combine two or more of the integer, string, or file operators or to negate a single integer, string, or file operator. Table 14.5 lists the test commands logical operators.
Command | Meaning |
---|---|
! expr | Returns True if expr is not true. |
expr1 -a expr2 | Returns True if expr1 and expr2 are true. |
expr1 -o expr2 | Returns True if expr1 or expr2 is true. |
Previous | Table of Contents | Next |