TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #236 1.61K
Сравнение вывода команд без временных файлов с помощью process substitution

Когда нужно сравнить результат работы двух команд, большинство сразу сохраняет их в файлы:


команда1 > out1.txt
команда2 > out2.txt
diff out1.txt out2.txt


Но Bash позволяет сделать это без лишнего мусора на диске, используя подстановку процессов - конструкцию <(команда).

▪️ Пример: сравнение списков установленных пакетов на двух серверах


diff <(ssh server1 'dpkg -l | sort') <(ssh server2 'dpkg -l | sort')


Bash создаёт два временных именованных канала (FIFO) и подставляет их как файлы. diff "думает", что сравнивает обычные файлы, а на деле - это результат команд.

▪️ Примеры практического применения
📍 Сравнение конфигурации


diff <(curl -s http://server1/config.json) <(curl -s http://server2/config.json)


📍 Проверка различий в ответах веб-приложения (до и после деплоя)


diff <(curl -s https://myapp.com/v1/data) <(curl -s https://myapp.com/v2/data)


📍 Сравнение вывода команд systemd


diff <(systemctl list-units --type=service | grep running) <(cat snapshot.txt)


⚡️ Полезно:

1. Работает не только с diff, но и с comm, cmp, vimdiff и др.
2. Используется только в bash и совместимых шеллах (не POSIX-совместимо).
3. <(...) — это подстановка процесса, создающая временный дескриптор.


🔥 Фишка: можно использовать diff -u для наглядного вывода различий:


diff -u <(sort файл_до.log) <(sort файл_после.log)


BashTex 📱 #bash #utils
  • 👍 15
More from @bash_tex
  1. Oct 12, 2026xargs против while read: где быстрее и безопаснее Обе конструкции позволяют обработать спи…
  2. Oct 9, 2026BashTex 📱 #мем
  3. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  4. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  5. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
  6. Oct 5, 2026name_to_handle_at() - как получить файловый объект без обычного пути В Linux обычно обраща…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →