Разница между && и || оператор в Bash - PullRequest
0 голосов
/ 07 марта 2020

Это меня смущает.

false || echo "Oops, fail" # Oops, fail
true || echo "Will not be printed" #
true && echo "Things went well" # Things went well
false && echo "Will not be printed" #

true return 0 код выхода и false return 1. Я не могу понять, как || и && работают. Они оба работают с кодами выхода или с фактическим выводом команды? В чем разница между && и || оператор здесь?

Приведенный выше фрагмент кода взят из недостающего семестра учебной лекции по CS 2 .

1 Ответ

3 голосов
/ 07 марта 2020

x <b>&&</b> y выполняет x, затем выполняет y, только если x выполняет (т. Е. Имеет состояние выхода 0)

x <b>||</b> y выполняет x, тогда выполняется только y, если x не удается (т. е. имеет ненулевой статус выхода)

Вывод x не имеет значения.

Одно место, которое они делают не отличаются, имеет приоритет. В отличие от логических операторов в других языках, && и || имеют равный приоритет, поэтому что-то вроде

a || b && c

анализируется и оценивается так же, как

{ a || b; } && c

, а не

a || { b && c; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...