Я хочу иметь возможность открывать программу оболочки, используя Node.js. Когда я запускаю bash из терминальной программы, я захожу в оболочку примерно так:
Но когда я запускаю bash с помощью Node.js, я предполагаю, что он предполагает, что я не в терминальной программе или чем-то еще, поэтому он на самом деле не открывает оболочку, а просто вводит пустоту. Вот программа Node.js (на самом деле довольно простая):
const net = require('net');
const cp = require('child_process');
const server = net.createServer(s => {
const bash = cp.spawn('bash');
s.pipe(bash.stdin, {end:false});
bash.stdout.pipe(s);
bash.stderr.pipe(s);
});
server.listen('4004');
Если я запустил вышеуказанный сервер, а затем подключился к нему с помощью netcat
:
nc localhost 4004
тогда я просто получаю пустоту, в которую я могу напечатать и получить результаты, но я не получаю программу оболочки или программу, подобную терминалу.