Linux 以编程方式启动交互式shell

Linux 以编程方式启动交互式shell,linux,shell,Linux,Shell,我需要以编程方式执行交互式shell(在Node.js中,但任何语言都可以)。 最重要的是,我希望启动任何语言(node、ruby、erlang等)的REPL,并能够自动完成 pri\t 我希望在stderr中获得输出(例如) 因为它使用的是REPLcompgen语言,所以不能使用它。 我尝试了很多方法,但似乎失败了,因为shell在以编程方式打开时无法交互。 Launchin/bin/sh-i只会产生如下错误: bash: cannot set terminal process group

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

pri\t
我希望在stderr中获得输出(例如)

因为它使用的是REPL
compgen
语言,所以不能使用它。
我尝试了很多方法,但似乎失败了,因为shell在以编程方式打开时无法交互。 Launchin
/bin/sh-i
只会产生如下错误:

bash: cannot set terminal process group (XXXX): Inappropriate ioctl for device
我听说在没有终端的情况下无法启动交互式shell,但是当执行SSH自动完成时确实可以工作,这意味着可以以某种方式模拟它


谢谢你的帮助。如果不找到解决方案,我无法继续工作。

您可以使用伪终端模拟终端。ssh就是这样做的。不过,使用伪终端有很多好处,所以应答框不够大,无法容纳所有内容。因此,请检查手册页。

我可以假设它已预装在每个linux系统上吗?@KrzysztofWende根据
forkpty
的手册页,它不是标准的,但它存在于libc5和glibc2中,因此可以安全地假设它存在于任何最新的linux系统上。是的!最后它成功了。非常感谢。当悬赏案有问题时,我会给你50分。这是第一个真正有效的答案。
bash: cannot set terminal process group (XXXX): Inappropriate ioctl for device