Ответ
Да, активно использую Bash для автоматизации рабочих процессов в разработке на C++. Это неотъемлемая часть инструментария при работе в Linux-среде.
Основные сценарии использования:
- Сборка проектов: Написание скриптов для конфигурации (CMake), компиляции с разными флагами и целевыми платформами.
- Автоматизация тестирования: Запуск юнит-тестов (Google Test, Catch2), интеграционных тестов и анализ их результатов.
- CI/CD пайплайны: Подготовка окружения, запуск статических анализаторов (
clang-tidy,cppcheck), проверка форматирования кода (clang-format). - Обработка данных: Анализ логов, профилировочных данных (
perf,gprof), сгенерированных приложением.
Пример Bash-скрипта для типичного C++ workflow:
#!/bin/bash
set -euo pipefail # Строгий режим: прерывать при ошибках, использовать pipefail
PROJECT_NAME="my_app"
BUILD_DIR="build"
echo "[1/4] Configuring with CMake..."
cmake -B "$BUILD_DIR" -DCMAKE_BUILD_TYPE=Release -DUSE_SSE=ON
echo "[2/4] Building..."
cmake --build "$BUILD_DIR" -j$(nproc)
echo "[3/4] Running tests..."
cd "$BUILD_DIR" && ctest --output-on-failure
echo "[4/4] Static analysis..."
# Запуск clang-tidy для списка файлов
find ../src -name "*.cpp" | xargs -I {} clang-tidy {} -- -I../include
echo "Build and check completed successfully."
Также регулярно использую базовые конструкции: циклы (for, while), условия (if-else), работу с аргументами скрипта ($1, $@, shift), подстановки команд и перенаправление потоков ввода-вывода.