Logical Operator AND

Learn how to use the logical AND operator in your Bash commands.

We'll cover the following

Conditional algorithm

The pipeline allows us to combine several commands. These commands together make an algorithm with a linear sequence. The computer executes actions of such an algorithm, one by one, without any conditions.

Let’s suppose we need a more complex algorithm. There, the result of the first command determines the next step. The computer does one action if the command succeeds. Otherwise, it does another action. Such a dependency is known as a conditional algorithm. The pipeline does not fit in this case.

We’ll go over an example of the conditional algorithm. We want to write a command to copy the directory. If this operation succeeds, the command writes the “OK” line in the log file. Otherwise, it writes the “Error” line there.

We can write the following command using the pipeline

cp -R ~/docs ~/docs-backup | echo "OK" > result.log

This command does not work properly. It writes the “OK” line to the result.log file, regardless of the copying result. Even if the docs directory does not exist, the log file is generated and we get the “OK” line. The log file reports that the operation succeeded, but in fact it failed.

The cp utility result should define the echo output. We can get this behavior using the && operator. Then, the command becomes like this:

cp -R ~/docs ~/docs-backup && echo "OK" > result.log

Now, echo prints the “OK” line when the cp utility succeeds. Otherwise, there is no output to the log file. We can read the result by running cat result.log.

Run the commands discussed in this lesson in the terminal below.

Get hands-on with 1200+ tech skills courses.