Moje pytanie jest podobne do tego: How to detect if my shell script is running through a pipe?. Różnica polega na tym, że skrypt powłoki, nad którym pracuję, jest zapisany w pliku Node.js.Jak wykryć, czy skrypt Node.js działa przez potok powłoki?
powiedzmy wejdę:
echo "foo bar" | ./test.js
Więc jak mogę uzyskać wartość "foo bar"
w test.js
?
Przeczytałem Unix and Node: Pipes and Streams, ale wydaje się, że tylko oferuje rozwiązanie asynchroniczne (chyba że się mylę). Szukam synchronicznego rozwiązania. Poza tym przy użyciu tej techniki nie jest łatwo wykryć, czy skrypt jest podłączony, czy nie.
TL; DR pytanie jest dwojaki:
- Jak wykryć czy skrypt node.js działa poprzez rurę powłoki, np
echo "foo bar" | ./test.js
? - Jeśli tak, jak odczytać wartość potokową w pliku Node.js?
Niestety, to się nie powiedzie w procesie potomnym: 'node -p -e" require ('child_process'). Exec (\ "node -p -e 'process.stdin.isTTY' \", (err , res) => console.log ("err:", err, "res:", res)) "' – maxlath