【发布时间】:2015-03-30 19:56:44
【问题描述】:
我正在尝试使用 Fabric 在远程机器上运行命令。
这工作正常,直到远程机器上的命令是交互式的。在这种情况下,Fabric 返回交互式 shell,但强制我输入所需的信息,而我正在尝试发送一个远程执行所有操作的命令,因此我可以自动执行该过程。
例子:
from fabric.api import *
env.hosts=['myhost.mydomain']
env.user='root'
run(test1/myapp; exectask; exit)
我在远程机器上运行一个 cli 应用程序,它使用交互式 shell,所以它正在等待我输入命令 (exectask);然后一旦完成,退出,我调用 exit 命令。
现在发生的情况是应用启动,Fabric 向我显示交互式 UI,我仍然需要键入 exectask,然后退出。
我如何告诉fabric 运行该应用程序,然后将命令传递给交互式shell,然后退出退出?
我看到Fabric有提示功能,但那是要求用户输入数据,而我只想传递命令并返回结果。
【问题讨论】:
-
您是否考虑过使用输入重定向,即 mycommand
其中 input.txt 包含您对交互式问题的回答?