LINUX.ORG.RU

История изменений

Исправление mky, (текущая версия) :

По второму вопросу — coprocess, но это чёрная магия и лучше её не использовать:

#!/bin/bash

coproc ping -c 20 -n 127.0.0.1

for i in 1 2 3 4 5 6 7 8 9 A ; do
  read var <&"${COPROC[0]}"
  echo i is $i ";" var is $var
  sleep 1
done

Примеры по вашей ссылки по первому вопросу основаны на том, что можно получить stdout и stdin через Process Substitution, но это будут подпроцессы, чтобы передать значения переменных в основной процесс их выводят через ″typeset -p″, а потом превращают в переменные через ″eval″. Лично я бы предпочёл использование временных файлов ( ″mktemp″), чем через год понимать что это за код, завёрнутый в ″eval″.

Исходная версия mky, :

По второму вопросу — coprocess, но это чёрная магия и лучше её не использовать:

#!/bin/bash

coproc ping -c 20 -n 127.0.0.1

for i in 1 2 3 4 5 6 7 8 9 A ; do
  read var <&"${COPROC[0]}"
  echo i is $i ";" var is $var
  sleep 1
done


Примеры по вашей ссылки по первому вопросу основаны на том, что можно получить stdout и stdin через Process Substitution, но это будут подпроцессы, чтобы передать значения переменных в основной процесс их выводят через ″typeset -p″, а потом превращают в переменные через ″eval″.  Лично я бы предпочёл использование временных файлов (  ″mktemp″), чем через год понимать что это за код, завёрнутый в ″eval″.