До першого наближення 0 - це успіх, не нуль - це збій, 1 - загальний збій, а все, що більше, ніж одне - конкретний збій. Окрім тривіальних винятків помилок та тесту, які розроблені таким чином, щоб дати успіх 1, я знайшов кілька інших винятків.
Більш реально, 0 означає успіх або, можливо, невдачу, 1 означає загальний збій або, можливо, успіх, 2 означає загальний збій, якщо для успіху використовуються 1 і 0, але, можливо, і успіх.
Команда diff дає 0, якщо порівняні файли однакові, 1 якщо вони відрізняються, і 2, якщо двійкові файли відрізняються. 2 також означає збій. Команда менше дає 1 за відмову, якщо ви не введете аргумент, і в цьому випадку він виходить з 0, незважаючи на невдачу.
Команда "Більше" та "Заклинання" дають 1 за помилку, якщо тільки помилка не є результатом дозволу, відхиленого, неіснуючого файлу або спроби прочитати каталог. У будь-якому з цих випадків вони виходять з 0, незважаючи на збій.
Тоді команда expr дає 1 для успіху, якщо вихід не є порожнім рядком або нулем, і в цьому випадку 0 є успішним. 2 і 3 - відмова.
Тоді є випадки, коли успіх чи невдача неоднозначні. Коли grep не вдається знайти шаблон, він виходить з пункту 1, але він виходить з-за 2 за справжній збій (наприклад, у дозволі відмовлено). Klist також виходить з пункту 1, коли йому не вдалося знайти квиток, хоча це насправді більше не є помилкою, ніж коли grep не знаходить шаблон або коли ви порожній каталог.
Тож, на жаль, сили Unix, схоже, не застосовують жодного логічного набору правил, навіть на дуже часто використовуваних виконуваних файлах.