Что означает двойной амперсанд (&&) в команде Linux?

«Что означает двойной амперсанд (&&) в команде Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Двойной амперсанд && — это оператор логического И в командной оболочке (shell). Он используется для условного выполнения команд: вторая команда выполнится только если первая завершится успешно (с кодом возврата 0).

Пример из практики DevOps:

# Собрать образ и, только если сборка прошла успешно, отправить его в registry
docker build -t myapp:latest . && docker push myapp:latest

# Запустить тесты и, если они пройдены, выполнить деплой
make test && ansible-playbook deploy.yml

Альтернативные операторы:

  • ; — выполняет команды последовательно, независимо от результата предыдущей.
    echo 'Шаг 1'; echo 'Шаг 2' # Оба echo выполнятся всегда
  • || — оператор логического ИЛИ. Вторая команда выполнится только если первая завершится с ошибкой (не нулевой код возврата).
    # Попробовать перезапустить службу, а если не вышло — записать в лог
    systemctl restart nginx || echo "$(date): Restart failed" >> /var/log/nginx/errors.log

Использование && критически важно для создания надежных скриптов развертывания и CI/CD пайплайнов, чтобы предотвратить выполнение последующих шагов после сбоя.