TCL连接到现有流程

TCL连接到现有流程,tcl,expect,Tcl,Expect,假设我用TCL脚本生成了一个SSH会话。如何从另一个TCL脚本与此会话交互?是否可以连接到已由另一个脚本生成的进程?最简单的方法是在该ssh会话中使用。然后,您可以在expect脚本中断开与它的连接,然后从另一个ssh会话(当然可能在您的expect脚本中)重新连接到它 screen本身的使用是一个主题,但是从expect的角度来看,它实际上并不比自动化以前ssh会话中的任何内容复杂多少;可能需要多做一点工作(特别是当你需要处理创建新的屏幕会话和查找+连接到现有会话之间的差异时),但实际上并没有

假设我用TCL脚本生成了一个SSH会话。如何从另一个TCL脚本与此会话交互?是否可以连接到已由另一个脚本生成的进程?

最简单的方法是在该ssh会话中使用。然后,您可以在expect脚本中断开与它的连接,然后从另一个ssh会话(当然可能在您的expect脚本中)重新连接到它

screen
本身的使用是一个主题,但是从
expect
的角度来看,它实际上并不比自动化以前ssh会话中的任何内容复杂多少;可能需要多做一点工作(特别是当你需要处理创建新的屏幕会话和查找+连接到现有会话之间的差异时),但实际上并没有那么多。绝对比试图以其他方式模仿行为要少

您不希望尝试在屏幕内运行ssh会话(即,与我建议的相反)。这是因为网络连接最有可能被外部干预破坏


您可以在本地屏幕中运行expect脚本。这超出了我们在这里讨论的范围。

请注意,expect和screen都非常广泛地使用Unix虚拟终端系统,而且虚拟终端是一种严格受限的资源。不要过度使用这些设施,否则你会在登录时遇到奇怪的问题…