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...