Команда true в Linux

Linux 命令大全Справочник команд Linux


Что такое команда true

trueЭто одна из самых простых команд в системах Linux/Unix, и у неё только одна функция:всегда возвращать успех (код состояния выхода 0)。

Эта команда кажется простой, но она имеет важное применение в программировании shell-скриптов. Она эквивалентна операции "ничего не делать, но всегда завершаться успешно".


Базовый синтаксис

Примеры

true [--help] [--version]

Параметры

Опция Описание
--help Показать справочную информацию и выйти
--version Показать информацию о версии и выйти

Как это работает

trueПроцесс выполнения команды очень прост:

  1. Когда вы вводитеtrueи нажимаете Enter
  2. Система выполняет эту команду
  3. Команда немедленно завершается, ничего не выполняя
  4. Возвращает код завершения 0 (что означает успех)

Практические примеры использования

1. Как условие для бесконечного цикла

Примеры

while true; do
    echo "Это бесконечный цикл"
    sleep 1
done

В этом примере,while trueсоздаёт бесконечный цикл, потому чтоtrueвсегда возвращает успех (0), поэтому условие цикла всегда истинно.

2. Как успешная операция по умолчанию

Примеры

команда || true

Этот синтаксис означает: еслиcommandне выполнится, то выполнитьtrue(всегда завершается успешно), это гарантирует, что всё выражение всегда возвращает успешный статус.

3. Как заглушка в скриптах

Примеры

if [ condition ]; then
    :  # Ничего не делать
else
    true  # Это также можно записать, чтобы ничего не делать
fi

Здесьtrueслужит заменой no-op, делая структуру кода более понятной.


Сравнение с командой false

В Linux также есть соответствующаяfalseкоманда, которая всегда возвращает ошибку (код состояния выхода 1). В таблице ниже показаны различия между ними:

Команда Функция Код состояния выхода Типичное использование
истина Ничего не делает, возвращает успех 0 Бесконечные циклы, игнорируя ошибки
false Ничего не делает, возвращает ошибку 1 Тестирование обработки ошибок, условных проверок

Детали реализации

В большинстве систем Linux,trueявляется встроенной командой (встроенной в оболочку), но обычно также существует отдельная бинарная версия:

Примеры

$ type -a true
true является встроенной командой оболочки
true находится в /usr/bin/true
true находится в /bin/true

Его реализация чрезвычайно проста и может быть представлена на C так:

Примеры

int main() {
    return 0;
}

Практические упражнения

Попробуйте запустить её напрямую в терминалеtrue, затем проверьте код завершения:

Примеры

истина
echo $?  # Это выведет 0

Создайте скрипт с бесконечным циклом, который выводит текущее время каждые 5 секунд:

Примеры

#!/bin/bash
while true; do
    date
    sleep 5
done

Тестtrueповедение в условных операторах:

Примеры

if true; then
    echo "Это всегда выполнится"
fi

ЧАВО

Вопрос: Команда true действительно ничего не делает?Ответ: Да, она не выполняет никаких фактических операций, а просто возвращает успешный код завершения.

Вопрос: Почему нам нужна такая, казалось бы, бесполезная команда?Ответ: В программировании сценариев иногда нам нужен заполнитель или условие, которое всегда успешно,trueи эта команда как раз удовлетворяет эту потребность.

Вопрос: В чём разница между true и двоеточием (:)?Ответ: В большинстве оболочек,:также является командой, которая ничего не делает, и её поведение идентичноtrueповедению true. Однако,:является чисто встроенной командой оболочки, тогда какtrueможет иметь отдельную бинарную версию.


Итог

trueХотя команда проста, это практичный инструмент в программировании сценариев shell. Её основные возможности включают:

  • Всегда возвращает успех (код завершения 0)
  • Не выполняет никаких фактических операций
  • Часто используется для бесконечных циклов, обработки ошибок и заполнителей кода

Linux 命令大全Справочник команд Linux

Другие расширения