Каковы шаги этой команды, используя; || и &&

Примечание: ABC – это команды …..

Скажите, пожалуйста, какой шаг был бы из этих команд, поэтому я могу лучше понять язык.

A || B ; C = If A fails then run B then C? A ; B || C = Run A then B then C if (B fails... or is it if A fails?)? 

То, что я на самом деле, это что-то вроде этого (но хотелось бы понять вышеприведенные шаги):

Если A терпит неудачу, тогда запустите B, но если A преуспеет, пропустите B, затем запустите C, d, e и т. Д. (Как я могу это сделать с помощью «||» ";" и / или "&&"?)

Я нашел информацию по этой ссылке, но она показывает только шаги из 2 команд, а не 3 …. https://askubuntu.com/questions/334994/which-one-is-better-using-or-to-execute -Несколько-команды в одном линии

Причина, почему другая ссылка не отвечает на этот вопрос:

Итак, в следующий раз, если вам нужно объединить 4 команды, вы зададите новый вопрос, потому что ответы здесь показывают только, как работают 3 команды? – don_crissti26 мин назад

Нет, сэр, потому что я пойму лингвистический следующий шаг на будущее :). В основном из-за этого ….: Я был неясно, если команда и переключатель (?) «||» в последовательном порядке (команда C в этом случае) всегда смотрели на команду (A) или если она выглядела командой (B ). Это в основном потому, что меня смутил кто-то, говорящий это: A || B = Запустить B, если A не удалось .. не был уверен, что следующая команда (C, D и т. Д. И т. Д.) Будет также смотреть на A 🙂 (duh – это то, что кажется, но я не знаю этого языка .. так что нужно было получить ясность).

  • Прокрутка вывода команды без временного файла
  • Попытка подключиться через cl
  • проверить работу
  • Как запустить программу в фоновом режиме, а также с помощью && выполнить другую команду
  • Греп против внимания на mac
  • Печать на терминал после загрузки
  • Как узнать скорость PCI-X-карты?
  • Должно ли сообщение об использовании перейти на stderr или stdout?
  • 2 Solutions collect form web for “Каковы шаги этой команды, используя; || и &&”

     A || B ; C 

    если A выйдет с ненулевым статусом, запустите B. C бежит безоговорочно

     A ; B || C 

    запустите A. Затем запустите B. Если B выходит с ненулевым статусом, запустите C


    Тангенциально вы иногда видите A && B || C A && B || C Обычно это делается сокращением, if A; then B; else C; fi if A; then B; else C; fi if A; then B; else C; fi . Однако есть одно существенное различие:

     A && B || C 
    • Если A не удался, запустите C
    • если A преуспевает, тогда запустите B.
      • если B не удастся, запустите C
     if A; then B; else C; fi 
    • Если A не удался, запустите C
    • если A преуспевает, тогда запустите B.
      • если B не выполняется, C НЕ выполняется

    Демонстрация:

     $ (echo A; exit 0) && (echo B; exit 1) || (echo C; exit 2); echo $? A B C 2 # <== the exit status of C $ if (echo A; exit 0); then (echo B; exit 1); else (echo C; exit 2); fi; echo $? A B 1 # <== the exit status of B 

    Простой тест

     (echo -n "hello" || echo -n "world") && echo "!" 

    производит «привет!».

    Альтернативно (создание оператора A false)

     ( false || echo -n "world") && echo "!" 

    производит «мир!»

    OR являются ленивыми, поэтому, если A истинно в (A || B), B никогда не оценивается, как True OR True == True и True ИЛИ False == True

    Linux и Unix - лучшая ОС в мире.