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

Примечание: 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 – это то, что кажется, но я не знаю этого языка .. так что нужно было получить ясность).

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

  • Выполнить файл, если команда не найдена
  • подсчитывать строки в файле
  • Сохранение списка в определенном формате
  • код возврата obexftp 97
  • Как изменить интерпретацию переменной в `zsh`?
  • Почему терминал говорит, что он устанавливает пакет, который уже установлен, когда я пытаюсь установить что-то совершенно другое?
  • Как создать пустой PDF-файл из командной строки?
  • Базовая сеть через командную строку
  • Добавить пользователя теста в файл sudoers, для запуска ifconfig
  • Как повернуть набор изображений из командной строки?
  • Разница между ifconfig и ipconfig?
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.