🐕
【Bash】Node.js、Deno、Bun のワンライナーで標準入力を利用する
ほかの Linux コマンドからの出力を受け取るためには標準入力を利用する必要がある
まずは Node.js。import文を使うために
--input-type=module` を指定する必要がある (Node.js v22)
shell
echo -n Hello World | node --input-type=module -e "import { createInterface } from 'node:readline'; for await (const line of createInterface({ input: process.stdin })) { console.log(line); }"
eval
import { createInterface } from 'node:readline';
for await (const line of createInterface({ input: process.stdin })) {
console.log(line);
}
次は Deno
shell
echo -n "Hello World" | deno eval "for await (const chunk of Deno.stdin.readable) { console.log(new TextDecoder().decode(chunk)); }"
Deno.stdin.readable を使う
eval
import { createInterface } from 'node:readline';
for await (const line of createInterface({ input: process.stdin })) {
console.log(line);
}
最後は Bun
shell
echo -n Hello World | bun -e "for await (const chunk of Bun.stdin.stream()) { console.log(Buffer.from(chunk).toString()); }"
eval
for await (const chunk of Bun.stdin.stream()) {
console.log(Buffer.from(chunk).toString())
}
Discussion