以编程方式启动交互式shell

Krz*_*nde 3 linux shell

我需要以编程方式执行交互式shell(在Node.js中,但任何语言都可以).最重要的是我想要启动任何语言的REPL(node,ruby,erlang等)并能够自动完成

pri\t
Run Code Online (Sandbox Code Playgroud)

我希望在stderr中输出(例如)

print()        println()         printf()
Run Code Online (Sandbox Code Playgroud)

因为它在语言compgen中不能使用REPL .
我已经尝试了很多方法,但它似乎失败了,因为shell在以编程方式打开时无法进行交互.启动/bin/sh -i只是yeilds错误,如:

bash: cannot set terminal process group (XXXX): Inappropriate ioctl for device
Run Code Online (Sandbox Code Playgroud)

我听说没有终端就无法启动交互式shell,但是在做SSH自动完成时确实有效,这意味着它可以通过某种方式进行模拟.

我很感激你的帮助.如果没有找到解决方案,我就无法继续工作.

ran*_*ame 7

您可以使用终端模拟终端.这是ssh如何做到的.虽然使用伪终端有很多,但SO答案框对于所有这些都不够大.因此,请查看pty(7)的手册页.