Você diz que precisa do aplicativo Node para ler o pipe, então vamos fazer isso:
node x.js <"$my_named_pipe"
Então você diz que quer que a função leia a saída disso, então vamos fazer isso também:
node x.js <"$my_named_pipe" | delete_lock
Note que |
é um terminador de comando, o que significa que em
command1 | command2 <thing
é command2
que lê thing
.
Respondendo a comentários:
A função delete_lock
pode ler sua entrada padrão, que vem do aplicativo Node. Se, por exemplo, ele tiver que fazer alguma ação dependendo de um padrão na saída do aplicativo Node, talvez queira usar grep
:
delete_lock () {
if grep -q 'PATTERN'; then
# some command here
fi
}
Se você precisar que o aplicativo Node continue após a ação ter sido executada pela função, será necessário continuar consumindo sua saída:
delete_lock () {
if grep -q 'PATTERN'; then
# some command here
fi
cat >/dev/null
}
Caso contrário, o aplicativo Node receberá um sinal SIGPIPE e terminará.