Завершення виконання будь-якої програми в ОС UNIX супроводжується виробленням деякого значення коду завершення. який повертається батьківському процесу. За кодом завершення викликає процес визначає, як завершилося виконання команди - успішно чи ні. Команди UNIX повертають код 0 при позитивному результаті і код, відмінний від 0 (1, 2 і т.д.), якщо щось було виконано неправильно.
За прийнятим угодою число, рівне нулю, позначається true (успішне виконання), а число, відмінне від нуля, позначається false (неуспішне завершення). False може мати кілька значень, і конкретне значення часто вказує причину, по якій процес завершився неуспішно. Деякі команди, наприклад, grep і diff, для кожної помилки видають особливий ненульовий код (конкретні значення наведені в документації).
Для встановлення необхідного коду завершення інтерпретатор shell має дві спеціальні програми - true і false, єдина функція яких полягає у формуванні значень коду true - нуля і false - одиниці.
Інтерпретатор поміщає код завершення попередньої команди в змінну. Її значення можна отримати, поставивши перед ім'ям знак долара, як і в разі будь-якої іншої змінної.
Наприклад. щоб отримати код завершення команд true і false, можна використовувати привласнення змінним A і B коду їх завершення:
Як правило, код завершення не потрібно виводити на екран. Існує кілька способів використання коду завершення однієї команди, як умова виконання наступної, які будуть розглянуті в наступних розділах.