1

当我登录到我们的一台服务器时,系统会提示我:

Please select the system to work with:
   1: system1 (user u1)
   2: system2 (user u1)
   3: system3 (user u2)

Enter your choice (1-3) [1]:

我需要在执行任何命令之前输入“1”,就在 login 之后。我可以通过 Fabric 自动响应此类提示吗?其他盒子可能会在没有提示的情况下登录,所以这只是可能的情况之一。需要这样的东西:

if prompt("Enter your choice (1-3) [1]:"):
  response("1")
run(command)

如何才能做到这一点?我阅读了与远程程序的交互,但没有找到任何有用的示例。如果可能的话,我宁愿只使用织物,而不是涉及其他模块。

4

1 回答 1

1

看来,没办法。

可能的解决方案如下:

  1. 一些命令行工具支持禁止提示放置默认值的标志(如果您需要的话)。
  2. 您可以使用在本主题中作为可能解决方案提出的autoexpect工具
于 2012-10-09T11:29:11.410 回答