Using the test shell built-in

It is probably time for us to pull over to the side of the scripting highway and look a little more at the command test. This is both a shell built-in and a file executable in its own right. Of course, we will have to hit the built-in command first, unless we specify the full path to the file.

When the test command is run without any expressions to evaluate, then the test will return false. So, if we run the test as shown in the following command, the exit status will be 1, even though no error output is shown:

$ test  

The test command will always return either True or False, or 0 or 1, respectively. The basic syntax of test is as follows:

test EXPRESSION  

Or, we can invert the test command with this:

test ! EXPRESSION  

If we need to include multiple expressions, this can be done using AND or OR together, using the -a and -o options, respectively:

test EXPRESSION -a EXPRESSION
test EXPRESSION -o EXPRESSION 

We can also write this as a shorthand version, replacing the test with square brackets to surround the expression, as shown in the following example:

[ EXPRESSION ]