Что такое коды выхода

Для программиста который “пишет сайт” не всегда удаётся постигнуть суть
консольных приложений. А мешанина баша или power shell`а выглядит совсем страшно
если не знать что такое “коды возврата” или коды выхода (exit codes) ведь это
самый простой способ написать условную обработку

Вся суть в двух картинках:
как работает или
и
как работает и

разжёвываю для детей. Операция логического и выглядит так:
ты чёткий пацан если: семки есть и корты освоил

чёткий? семки корты
нет нет нет
нет да нет
нет нет да
да да да

Так вот из покон веков считается в системном программировании что (вот правда, не стебусь):

успех? код выхода у нормальный в цифрах (у нормальных)
нет не 0 ложь 0
да 0 истина 1

И немного понятных вычислений на всем известном JS

1
2
3
4
5
let it_will_be_true = resultWillBeFalse() && resultWillBeTrue();
it_will_be_true = resultWillBeTrue() && thenItWillBeCalled(); // оба метода вызываются, ведь одна правда ещё не гаранитрует правду ...
let it_will_be_false = false && thenItWillBeNeverReallyCalled(); // метод не нужно вызывать, и так ложь. он и не вызывается!
let it_will_be = resultWillBeTrue() && thenItWillBeCalled();
it_will_be = resultWillBeFalse() || thenItWillBeNeverReallyCalled();

Ну и полный листинг, чтобы понять что change current working directory (сокращённо cd)
утработало успешно, а значит логическое и вызовет вторую команду

А если использовать или, то вторая команда отработает только в случае провала (ложь)

И показан сам код выхода

как работает && и || в баш

условно:

1
2
успех && тогда_выполни
не_успех || тогда_выполни

а успех это когда код выхода $? равен 0

Материал для более детального изучения: https://shapeshed.com/unix-exit-codes/