Как эффективно использовать process substitution в Bash

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

bashprocess substitutiondiff

👁 Когда вам нужно работать с несколькими потоками данных в Bash, особенно в сложных скриптах или обработке больших файлов, «process substitution» — это мощный инструмент для улучшения производительности и снижения сложности кода. Это особенно полезно при комбинировании вывода команд с другими командами, без необходимости создания временных файлов.

📝 Пример использования «process substitution»:

#!/bin/bash

# Сравнение содержимого двух файлов с помощью process substitution
diff <(sort file1.txt) <(sort file2.txt)

# Сравнение вывода двух команд
if diff <(echo "Hello World") <(echo "Hello World!"); then
    echo "No differences found"
else
    echo "Differences detected"
fi

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

  • Синтаксис <(команда) позволяет Bash перенаправить вывод команды в файл, который будет доступен для чтения другими командами, не создавая реально файл на диске
  • В примере выше, sort file1.txt и sort file2.txt выполняются в фоновом режиме, а diff сравнивает их вывод без необходимости временных файлов
  • Это решение идеально подходит для ситуаций, когда необходимо быстро и эффективно обработать вывод нескольких команд, особенно если данные должны быть переданы в другие утилиты (например, grep, awk, diff)

❗️ Это идеальный инструмент для работы с большими данными в скриптах, где каждый миллисекундный лаг имеет значение, особенно в автоматизированных рабочих процессах и CI/CD пайплайнах.

tags: #bash #полезно

🧭 @recura_tech 🌐 VK 🌐 MAX

Тёмный скриншот терминала с примером Bash-скрипта (diff/sort), подсветкой кода и логотипом RECURA внизу, демонстрирующий использование process substitution.
Пример кода Bash на тёмном фоне терминала с брендингом RECURA.

Читайте так же