Какой из них лучше: использование; или & amp; & amp; выполнить несколько команд в одной строке?

Всегда есть рабочий стол Google - если вы несете эту мысль.

1
задан 13 April 2017 в 15:24

3 ответа

&& выполняет только вторую команду, если первая из них вышла со статусом 0 (была успешной). ; запускает обе команды, даже если первый из них выходит с нулевым статусом.

Ваш пример с && может быть эквивалентно перефразирован как

if sudo apt-get update ; then
    sudo apt-get install pyrenamer
fi
75
ответ дан 24 May 2018 в 18:52
  • 1
    Благодарю. Я обновил вопрос, чтобы убедиться, что различные подзапросы легко различимы. – don.joey 21 August 2013 в 01:51
  • 2
    @Private: вы должны использовать ;, если вторая команда не нуждается в предыдущей для успеха. – choroba 21 August 2013 в 16:43

Используя ;, будут выполняться команды независимо от того, выполнена ли первая команда или нет.

, используя &&, выполнить вторую команду только тогда, когда первая команда выполнена успешно (состояние 0).

Оба используются в разных точках. Как для более длительного процесса, скажем, для установки вам необходимо скомпилировать и установить его. вы должны make && make install. Таким образом, установка будет работать только при успешном выполнении make.

Итак, для зависимых команд вы должны использовать &&

Wring bash или команды с независимыми командами использовать ;

Итак, если вы хотите выключить компьютер даже первое задание не помогло использовать ;, но если хотите, чтобы с успехом первого задания инициировать выключение, используйте &&

28
ответ дан 24 May 2018 в 18:52
  • 1
    Благодарю. Мне нравится последний случай использования, который вы представляете. Я обновил вопрос. – don.joey 21 August 2013 в 01:52

a ; b будет работать b независимо от состояния выхода a. a && b будет работать b только в том случае, если преуспел.

Это необходимо и достаточно для ответа на первые 3 вопроса. В частности, 2 слишком широк и не может быть дан «один» окончательный ответ - лучшим выбором является выбор в каждом конкретном случае.

Что касается четвертого вопроса: это синтаксис Bash .

Не существует никакой серьезной опасности при использовании. Опять же, определение выше достаточно. Это означает, что вы напишете &&, когда b имеет непреднамеренные эффекты, если a не удалось. Нет необходимости в дополнительных правилах или объяснениях, ИМХО.

12
ответ дан 24 May 2018 в 18:52

Другие вопросы по тегам:

Похожие вопросы: