Представим простую последовательность команд
cd ~/dir1 && cd ~/dir2 && echo "Success" || echo "Failed"
Если dir1 и dir2 существуют в домашней директории пользователя, то каждая команда (cd) вернёт True, и в результате выполнится echo "Success"
1 && 1 && echo "Success"
Если хоть одной директории нет, то в левой части получится 0 и логический оператор "Или" направит последовательность к выводу слова Failed
1 && 0 || echo "Failed"
Однако, возникает вопрос - а как именно BASH преобразовывает результат выполнения определённой команды в булевое значение? Куда он это значение записывает, и где хранит? Как можно это значение вывести?
На код ошибки это не похоже. Так как успешное выполнение команды возвращает 0. Что полностью противоречит алгебре логики.
За счёт чего и как в BASH реализован механизм взаимодействия команд с логическими операторами?