假设我使用TCL脚本生成了一个SSH会话。如何从另一个TCL脚本与此会话进行交互?是否可以连接到已由另一个脚本生成的进程?
答案 0 :(得分:2)
最简单的方法是在ssh会话中使用GNU screen
。然后,您可以在期望脚本中断开它,然后从另一个ssh会话(当然可能在您的期望脚本中)重新连接到它。
使用screen
本身是superuser.com的主题,但从expect
的角度来看,它并不比自动化内部任何内容复杂得多。 ssh会话之前;也许更多的工作(特别是当你必须处理创建一个新的屏幕会话和找到+连接到现有的会话之间的差异),但它实际上并没有那么多。绝对不如试图以其他方式模仿行为!
你不想要尝试在屏幕内运行ssh会话(即,与我推荐的相反)。这是因为网络连接最有可能被外部干预拆除。
您可以在本地屏幕中运行您的expect脚本。这超出了我们在这里讨论的范围。