COPROC

De Wiki Clusterlab.com.br
Revisão de 11h47min de 4 de dezembro de 2019 por Damato (discussão | contribs)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

Articles

Example

Run a "bc" in a subshell and keep it running to call multiple times from a loop without the overhead to instantiate "bc" every single iteration.

coproc bc
for i in {1..10}
do 
  echo $i'*'$i >&${COPROC[1]}
  read -u ${COPROC[0]} msg
  echo $msg
done
kill $COPROC_PID

OUTPUT

1
4
9
16
25
36
49
64
81
100

Run sed with buffering disabled, using coproc.

coproc stdbuf -o0 sed 's/.*/msg: &/'
for i in {1..10}
do 
  echo $i >&${COPROC[1]}
  read -u ${COPROC[0]} msg
  echo $msg
done
kill $COPROC_PID

OUTPUT

msg: 1
msg: 2
msg: 3
msg: 4
msg: 5
msg: 6
msg: 7
msg: 8
msg: 9
msg: 10