node.js에서 대화 형 쉘 명령을 실행해야합니다.node.js에서 대화 형 셸 명령을 실행하는 방법은 무엇입니까?
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();
이 코드는 아무것도 출력하지 않습니다 (그러나 표준 출력은 2
해야한다) : 대화 형 쉘 $ python
될 수 있습니다.
그러나 만약 그렇다면, 또 다른 문제가 있습니다. 대화 형으로 만드는 방법은 무엇입니까? 전화가 pythonChildProcess.stdin.end();
일 때 과정이 끝납니다! 하지만 난 그냥 stdin 끝내고 다음 표준 쓰기 싶었어요!
UPD : enter
버튼을 에뮬레이션 할 수 있다면 대화식으로 프로세스에 쓸 수 있습니다. 그러나 입력 문자열의 끝에 \n
을 추가해도 도움이되지 않습니다.
? 이게 무슨 뜻인지 설명해 주시겠습니까? –
@ E_net4, 나는'$ python' 명령을 실행하고, 어떤 입력 (예를 들어'1 + 1')을 작성하고,'enter'를 누르고, 약간의 출력 ('2')을 얻고 싶습니다. 다른 입력 ('10 + 10'),''enter''를 다시 한 번 눌러서 다른 출력을 얻은 다음 다른 입력을 작성하십시오. 그리고 ... "입력"과 같은 시퀀스는 "stdins"라고합니다. –
실제로는 여러 개의 입력 행을 보내려는 단일 표준 스트림. –