false
1. Что делает команда false?
Команда false является простейшим инструментом для генерации кода возврата неудачи (exit status = 1).
В большинстве систем Unix‑подобных операционных систем она находится в /usr/bin/false.
1.1 Синтаксис
false [OPTION]...Команда принимает опции, но они игнорируются и не влияют на поведение; всё равно возвращает статус 1.
1.2 Пример работы
$ false
$ echo $?
12. Техническое применение в скриптах
false часто используется как «пустой» блок, который гарантированно завершается с ошибкой. Это полезно в условных конструкциях и циклах.
2.1 В if‑условии
if false; then
echo "Это никогда не выполнится"
else
echo "Ошибка была успешно обнаружена"
fiВ этом примере блок then пропускается, а управление переходит в else.
2.2 В цикле while
while false; do
# Этот код никогда не исполняется
doneБесконечный цикл с условием, которое сразу становится ложным.
2.3 Как часть конвейера
Команда false часто используется в сочетании с && и ||.
command1 && command2 || falseЕсли command1 или command2 завершаются ошибкой, цепочка сразу возвращает статус 1.
3. Использование в системных сервисах
3.1 Как «плохой» скрипт‑сервис
В файлах unit‑юнитов Systemd можно задать ExecStart=/usr/bin/false.
Это позволяет создать службу, которая сразу завершается с ошибкой, но может быть использована как шаблон для тестирования.
3.2 Пример unit-файла
[Unit]
Description=Тестовая служба false
[Service]
Type=oneshot
ExecStart=/usr/bin/falseЗапуск такой службы всегда выдаёт статус 1, что можно использовать в системных зависимостях.
4. Расширенные варианты использования
4.1 В сочетании с set -e
В скриптах, где включён режим «выход при ошибке» (set -e), команда false может служить для отладки:
set -e
echo "До false"
false
echo "После false" # этот вывод не произойдёт4.2 Тестирование логики
При разработке условных блоков можно использовать false как «мок» для проверки, что код корректно обрабатывает ошибки.
5. Практические советы
- Используйте
falseвместо пустого тела
В сложных скриптах предпочтительнее явно писатьfalse, чем оставлять блоки без кода; это повышает читаемость и делает намерения очевидными. - Проверяйте статусы после цепочек
При работе с конвейерами (&&/||) всегда проверяйте$?. Если вы хотите гарантировать, что любая ошибка приводит к возврату 1, добавьтеfalseв конец цепочки.
6. Частые вопросы
- Можно ли изменить код возврата у
false?
Нет, команда всегда возвращает 1; для других значений используйтеexit N. - Как отключить опции при вызове
false?
Опции игнорируются автоматически, поэтому их наличие не влияет на результат.