TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #215 1.68K
Простая работа с фоновыми процессами через пайпы

coproc - один из недооценённых инструментов в Bash. Он позволяет создавать фоновые процессы с доступом к их вводу/выводу через переменные. То есть, ты получаешь легкий способ запускать команды асинхронно и при этом взаимодействовать с ними.

🌟 Зачем нужен coproc?

Иногда тебе нужно запустить процесс в фоне, при этом:

1. Посылать ему данные (stdin)
2. Читать от него результат (stdout)
3. Не колхозить с mkfifo, & и exec

Вот тут и заходит coproc.

▪️ Синтаксис


coproc ИМЯ { команда; }


После этого у тебя появятся:

${ИМЯ[0]} - дескриптор для чтения (stdout команды)
${ИМЯ[1]} - дескриптор для записи (stdin команды)

▪️ Пример 1: диалог с bc


coproc CALC { bc -l; }

echo "2^10" >&"${CALC[1]}"
read -r result <&"${CALC[0]}"
echo "Результат: $result"


bc запустился в фоне, мы отправили ему выражение, получили результат - красиво, без лишних файлов и форков.

▪️ Пример 2: интерактивный grep


coproc GREPPER { grep --line-buffered "error"; }

# Пишем в grep
echo "all ok" >&"${GREPPER[1]}"
echo "fatal error!" >&"${GREPPER[1]}"

# Читаем вывод (будет только строка с error)
read -r matched <&"${GREPPER[0]}"
echo "Найдено: $matched"


▪️ Пример 3: асинхронная обработка большого файла


coproc SORTER { sort > sorted.txt; }

# Пишем данные на сортировку
cat bigfile.csv >&"${SORTER[1]}"

# Ждём завершения
wait "${SORTER_PID}"
echo "Готово!"


BashTex 📱 #bash #utils
  • 👍 13
  • 🔥 1
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 →