У навчальних посібниках та підручниках я часто бачу комбіновані команди. Наприклад,
sudo apt-get update && sudo apt-get install pyrenamer
Там , здається, чотири можливих роз'ємів: &
, &&
, ||
і ;
. Хоча &
для мене роз'єм зрозумілий (він надсилає процес на задній план і залишає термінал доступним), незрозуміло, в чому різниця між &&
і ;
. І я не знав ||
до коментаря Каї.
Наступні питання стосуються різниці між двома роз'ємами, але це робиться переважно в коментарях:
Ось ось низка суміжних питань:
- У чому різниця між
;
і&&
? - Коли слід використовувати їх відповідно? Було б непогано бачити деякі випадки використання: якщо я хочу запустити команду, а потім після відключення мого комп’ютера, який з'єднувач слід вибрати?
- Які їх переваги та небезпеки ? У коментарі до цієї відповіді Робі Басак зазначає, що така команда може мати руйнівні наслідки, якщо, наприклад, не вдасться перший елемент в командному ланцюгу.
cd /somewhere_else; rm -Rf *
- Якщо доречно, звідки вони беруться?
set -e
зупинить сценарій при відмові, як якщо б всі команди були пов'язані &&
.
||
такий же, як,&&
за винятком того, що він виконує лише другу команду, якщо перша закінчилася з ненульовим (невдалим) статусом.