false

1. Что делает команда false?

Команда false является простейшим инструментом для генерации кода возврата неудачи (exit status = 1).
В большинстве систем Unix‑подобных операционных систем она находится в /usr/bin/false.

1.1 Синтаксис

Bash
false [OPTION]...

Команда принимает опции, но они игнорируются и не влияют на поведение; всё равно возвращает статус 1.

1.2 Пример работы

Bash
$ false
$ echo $?
1

2. Техническое применение в скриптах

false часто используется как «пустой» блок, который гарантированно завершается с ошибкой. Это полезно в условных конструкциях и циклах.

2.1 В if‑условии

Bash
if false; then
    echo "Это никогда не выполнится"
else
    echo "Ошибка была успешно обнаружена"
fi

В этом примере блок then пропускается, а управление переходит в else.

2.2 В цикле while

Bash
while false; do
    # Этот код никогда не исполняется
done

Бесконечный цикл с условием, которое сразу становится ложным.

2.3 Как часть конвейера

Команда false часто используется в сочетании с && и ||.

Bash
command1 && command2 || false

Если command1 или command2 завершаются ошибкой, цепочка сразу возвращает статус 1.

3. Использование в системных сервисах

3.1 Как «плохой» скрипт‑сервис

В файлах unit‑юнитов Systemd можно задать ExecStart=/usr/bin/false.
Это позволяет создать службу, которая сразу завершается с ошибкой, но может быть использована как шаблон для тестирования.

3.2 Пример unit-файла

Bash
[Unit]
Description=Тестовая служба false

[Service]
Type=oneshot
ExecStart=/usr/bin/false

Запуск такой службы всегда выдаёт статус 1, что можно использовать в системных зависимостях.

4. Расширенные варианты использования

4.1 В сочетании с set -e

В скриптах, где включён режим «выход при ошибке» (set -e), команда false может служить для отладки:

Bash
set -e
echo "До false"
false
echo "После false"   # этот вывод не произойдёт

4.2 Тестирование логики

При разработке условных блоков можно использовать false как «мок» для проверки, что код корректно обрабатывает ошибки.

5. Практические советы

  1. Используйте false вместо пустого тела
    В сложных скриптах предпочтительнее явно писать false, чем оставлять блоки без кода; это повышает читаемость и делает намерения очевидными.
  2. Проверяйте статусы после цепочек
    При работе с конвейерами (&&/||) всегда проверяйте $?. Если вы хотите гарантировать, что любая ошибка приводит к возврату 1, добавьте false в конец цепочки.

6. Частые вопросы

  • Можно ли изменить код возврата у false?
    Нет, команда всегда возвращает 1; для других значений используйте exit N.
  • Как отключить опции при вызове false?
    Опции игнорируются автоматически, поэтому их наличие не влияет на результат.
Команда false в Linux — это универсальный инструмент для управления логикой скриптов и системных служб. Используйте её с умом, чтобы явно обозначать ошибки и контролировать поток выполнения ваших сценариев.