Иногда может понадобится выполнить несколько команд таким образом, чтобы от результата выполнения первой зависело, будут ли запускаться последующие.
Для этого можно использовать специальные символы &&, || и ;, которые позволят управлять последовательностью запуска команд.
&&
lets you do something based on whether the previous command completed successfully — that’s why you tend to see it chained as do_something && do_something_else_that_depended_on_something
&&
will evaluate the second expression if the first expression returns 0. It’s good to remember that not all commands use return value to indicate success/failure — GNU diff, for example, returns 1 if two files differ and 0 if they don’t differ
Furthermore, you also have ||
which is the logical or, and also ;
which is just a separator which doesn’t care what happend to the command before.
$ false || echo "Oops, fail"
Oops fail
$ true || echo "Will not be printed"
$
$ true && echo "Things went well"
Things went well
$ false ; echo "This will always run"
This will always run
Some details about this can be found here Lists of Commands in the Bash Manual.