true
Что делает команда true в Linux
Команда true — простейшая утилита, которая всегда возвращает код завершения 0 (успех). Несмотря на свою минимальность, она играет важную роль в управлении логикой выполнения команд и условных операторов в скриптах.
Техническая реализация
trueреализована как исполняемый файл/usr/bin/true.- Внутри содержит только один системный вызов
exit(0), поэтому её размер — всего несколько байт. - Применяется в сценариях, где необходимо явно установить «истинное» условие без выполнения дополнительных действий.
Практические применения команды true
1. Создание бесконечных циклов
while true; do
# обработка событий
doneВ данном случае true обеспечивает постоянную истинность условия цикла, позволяя скрипту работать непрерывно до внешнего прерывания.
Подпункт: использование с break
Команда break внутри цикла позволяет выйти из него при необходимости. Это удобно для написания сервисов, которые ждут сигнала или тайм‑аута.
2. Плейсхолдеры в условных конструкциях
if true; then
echo "Условие всегда выполнится"
else
echo "Никогда не будет выведено"
fiИспользуется, когда нужно задать «запасное» условие, которое гарантирует выполнение блока кода независимо от внешних факторов.
Подпункт: комбинирование с false
Часто встречается пара true && command || false, где первая часть всегда истинна, а вторая — ложна, что позволяет управлять потоками выполнения без дополнительного логического выражения.
3. Тесты и проверки зависимостей
command -v grep > /dev/null || { echo "grep не найден"; exit 1; }Здесь true может заменить отсутствие проверки, если гарантировано наличие команды в системе. Это упрощает скрипты при работе в контролируемой среде.
Подпункт: использование в CI/CD
В пайплайнах CI (GitLab CI, Jenkins) команда true часто ставится как «заглушка» для этапов, которые ещё не реализованы, но должны быть частью последовательности задач.
4. Работа с оболочкой dash и POSIX
Команда true является стандартом POSIX и гарантирована в любой совместимой системе. Это делает её надёжным инструментом при написании скриптов, которые будут выполняться на разных дистрибутивах без лишних зависимостей.
Советы по использованию команды true
Если вы пишете сценарий, где нужно убедиться в отсутствии ошибок до выполнения критической операции, используйте конструкцию:
command || trueЭто гарантирует, что даже при неудачном выполнении command скрипт продолжит работу без прерывания.
Совет 2:
В многопоточных сценариях, где один поток контролирует состояние другого через файл‑флаг, можно использовать:
while true; do
if [[ -f /tmp/stop ]]; then break; fi
# работа
doneКоманда true в условии цикла обеспечивает постоянную проверку до появления сигнала остановки.
Итог
Хотя команда true выглядит как простейший «пустой» инструмент, её универсальность и предсказуемость делают её незаменимой при создании надёжных скриптов Linux. Используйте её для управления логикой циклов, условных операторов и проверок зависимостей, чтобы ваш код оставался чистым, понятным и легко масштабируемым.