Мне нужно запустить некоторую интерактивную команду оболочки внутри node.js. Позволяет нашей интерактивной оболочке $ python
:
var cp = require('child_process');
var pythonChildProcess = cp.spawn('python');
pythonChildProcess.stdout.on("data", function(data) {
console.log('data successfully written!', data); // never outputs anything
});
pythonChildProcess.stdin.write('1 + 1');
pythonChildProcess.stdin.end();
Этот код ничего не выводит (но stdout должен быть 2
).
Но если это произойдет, возникнет другая проблема: как сделать ее интерактивной? Процесс заканчивается, когда я звоню pythonChildProcess.stdin.end();
! Но я просто хотел закончить stdin и написать следующий stdin!
UPD:
Если бы я мог эмулировать нажатие кнопки enter
- я мог бы интерактивно писать в процесс. Но добавление \n
в конец входной строки не помогает.