Node.js の readline 組み込みモジュールで echo コマンドからのパイプを受け取る
Node.js の組み込みモジュールである readline
を使ってお遊び。
以前にも、echo
コマンドから文字列をパイプで受け取って処理を行う Node.js ワンライナーを書いたが、今回は /dev/stdin
を使わないやり方。
- 過去記事 : Node.js をシェルのパイプ中で使ってみる
readline
モジュールを使って次のようなコードを書いてやる。
#!/usr/bin/env node
const readline = require('readline');
const reader = readline.createInterface({
input : process.stdin,
output : process.stdout,
terminal: false
});
reader.on('line', (line) => {
console.log(line + ' が渡されました');
reader.close();
});
このスクリプトファイルを使うと、次のように echo
コマンドからの文字列を受け取れる。
$ echo 'AAA' | node ./read-pipe.js
AAA が渡されました
readline
モジュールには他にもプロンプトを設定するメソッドなどもあったりするので、CLI ツールを作る時にお世話になるかも。