Всегда есть рабочий стол Google - если вы несете эту мысль.
&& выполняет только вторую команду, если первая из них вышла со статусом 0 (была успешной). ; запускает обе команды, даже если первый из них выходит с нулевым статусом.
Ваш пример с && может быть эквивалентно перефразирован как
if sudo apt-get update ; then
sudo apt-get install pyrenamer
fi
Используя ;, будут выполняться команды независимо от того, выполнена ли первая команда или нет.
, используя &&, выполнить вторую команду только тогда, когда первая команда выполнена успешно (состояние 0).
Оба используются в разных точках. Как для более длительного процесса, скажем, для установки вам необходимо скомпилировать и установить его. вы должны make && make install. Таким образом, установка будет работать только при успешном выполнении make.
Итак, для зависимых команд вы должны использовать &&
Wring bash или команды с независимыми командами использовать ;
Итак, если вы хотите выключить компьютер даже первое задание не помогло использовать ;, но если хотите, чтобы с успехом первого задания инициировать выключение, используйте &&
a ; b будет работать b независимо от состояния выхода a. a && b будет работать b только в том случае, если преуспел.
Это необходимо и достаточно для ответа на первые 3 вопроса. В частности, 2 слишком широк и не может быть дан «один» окончательный ответ - лучшим выбором является выбор в каждом конкретном случае.
Что касается четвертого вопроса: это синтаксис Bash .
Не существует никакой серьезной опасности при использовании. Опять же, определение выше достаточно. Это означает, что вы напишете &&, когда b имеет непреднамеренные эффекты, если a не удалось. Нет необходимости в дополнительных правилах или объяснениях, ИМХО.