Recapping the test command
So far, we have used the built-in test
command to drive our conditional statements. Using other options with test
, we can look at the returned value to determine the status of files in the filesystem. Running the test
command without any options will return a false output:
$ test
Testing files
Commonly, we can use test
to check the conditions based around files. For example, to test whether a file is present or not, we can use the -e
option. The following command will test the existence of the /etc/hosts
file:
test -e /etc/hosts
We can run this test
again, but this time check that the file not only exists but is a regular file as opposed to having some special purpose. Specific file types can be directories, pipes, and links, among others. The option for a regular file is -f
:
$ test -f /etc/hosts
Adding logic
If we need to open a file from within our script, we test that the file is both a regular file and has the read permission set. To achieve this with test
, we can...