Я вижу эти два использования в Ubuntu "команда && команда" и "команда; команда",
напримерapt-get update && apt-get upgrade
Что будет отличаться, если я буду использовать apt-get update; apt-get upgrade
?
Я не спрашиваю об этом конкретном использовании, но в целом, в чем разница между этими двумя видами использования?
& (simple sequencing), && (conditional AND) and || (conditional OR)
.||
.Ответы:
&&
логический оператор;
это простая последовательность.В
cmd1 && cmd2
, cmd2 будет запущен, только если cmd1 завершается с успешным кодом возврата.Принимая во внимание
cmd1; cmd2
, что cmd2 будет работать независимо от состояния выхода cmd1 (при условии, что вы не настроили свою оболочку на выход при всех сбоях в вашем скрипте или чем-то еще).С другой стороны, при
cmd1 || cmd2
использовании||
логического оператора «ИЛИ» cmd2 будет запускаться только в случае сбоя cmd1 (возвращает ненулевой код завершения).Эти логические операторы иногда используются в сценариях вместо базового оператора if. Например,
... может быть более кратко достигнуто с помощью:
источник
Синтаксис
Команда2 выполняется тогда и только тогда, когда
command1
возвращается нулевое состояние выхода ( true ). Другими словами, запуститеcommand1
и, если это успешно, то запуститеcommand2
.Обе команды command1 и command2 будут выполняться независимо. Точка с запятой позволяет вводить много команд в одной строке.
Связанные :
Команда2 выполняется тогда и только тогда, когда команда1 возвращает ненулевой статус выхода. Другими словами, запустить
command1
успешно или запуститьcommand2
.пример
&&
оператор:;
оператор:||
оператор:Внешняя ссылка
источник