La mia domanda è simile a questa: How to detect if my shell script is running through a pipe?. La differenza è che lo script di shell su cui sto lavorando è scritto in Node.js.Come rilevare se uno script Node.js è in esecuzione attraverso una pipe shell?
Diciamo che entro:
echo "foo bar" | ./test.js
allora come posso ottenere il valore "foo bar"
in test.js
?
Ho letto Unix and Node: Pipes and Streams ma sembra solo offrire una soluzione asincrona (a meno che non mi sbagli). Sto cercando una soluzione sincrona. Inoltre, con questa tecnica, non sembra molto semplice rilevare se lo script viene sottoposto a pipe o meno.
TL; DR mia domanda è duplice:
- come rilevare se uno script Node.js viene eseguito attraverso un tubo shell, ad esempio
echo "foo bar" | ./test.js
? - Se sì, come leggere il valore di pipe in Node.js?
purtroppo, questo non riuscirà in un processo figlio: 'nodo -p -e "require ('child_process') exec (\." nodo -p -e 'process.stdin.isTTY' \", (err , res) => console.log ('err:', err, 'res:', res)) "' – maxlath