1. ホーム
  2. node.js

[解決済み】child_process.execSyncを使用してもコンソールに出力され続ける

2022-04-06 22:32:05

質問

を使いたいのですが execSync メソッドは、NodeJS 0.12 で追加されましたが、Node スクリプトを実行したコンソールウィンドウに出力されたままになっています。

例えば、次の行を持つ NodeJS スクリプトを実行する場合、コンソール内で rsync コマンド "live" の完全な出力を見たいと思います。

require('child_process').execSync('rsync -avAXz --info=progress2 "/src" "/dest"');

と理解しています。 execSync はコマンドの出力を返すので、実行後にそれをコンソールに出力することもできますが、これではquot;live"出力がありません......。

解決方法は?

を渡すことができます。 親プロセスの stdio を子プロセスに渡す。 ということです。

require('child_process').execSync(
    'rsync -avAXz --info=progress2 "/src" "/dest"',
    {stdio: 'inherit'}
);