1

Я понимаю, что если я выполняю команду в оболочке с операторами амперсанда, например, command1&&command2 и если первая команда выполняется успешно, это происходит с нулевым статусом выхода.

Это похоже на булеву логику или отличается от нее, когда 0 ложно, а 1 истинно или я правильно понял?

Имеет ли значение тип используемой вами оболочки? В настоящее время я работаю с Bourne-Again Shell.

2 ответа2

1

Лучшее обоснование заключается в том, что на самом деле существует только один «успех», но существует несколько причин «неудачи»: файл не найден, ошибка аргумента, ошибка вычисления и т.д. Это было условием ОС, а не только оболочки, в межпроцессном взаимодействии - код возврата, отправленный системным вызовом exit(2) и полученный вызовом wait(2) .

1

Оболочка в большинстве случаев равна 0, что указывает на нулевые ошибки и успех, так что да, в этом смысле это логически верно, в отличие от многих языков программирования, где 0 обычно ложно. Хотя современные языки обычно имеют разные логические значения истинного и ложного в наши дни.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .