我有一个 python 脚本,在运行它之前会询问您需要设置的几个用户键入的选项。我想知道是否可以制作一个 bash 脚本来自动填充 bash 脚本中为我定义的选项?
user1739467
问问题
1238 次
2 回答
2
于 2012-11-12T14:34:38.847 回答
1
我认为您正在寻找的是Expect-lite ( http://expect-lite.sourceforge.net )。它是一种简单的脚本语言,可以轻松地自动将响应传递给 cli 程序。它的重量很轻,可以让你编写一个脚本来运行你的 python 程序。
例如,如果您想通过 ssh 自动使用密码登录,您可以编写如下内容:
>ssh root@host-021
<assword:
>>secret_password
# issue a command once logged in
>ls
>exit
但是输出可能有点混乱。相反,您可以使用 Python 模块pexpect ( http://www.noah.org/wiki/pexpect ),它可以让您编写一个简单的 Python 脚本来运行其他 Python 脚本,同时自动响应提示。
上面的相同示例将变为:
child = pexpect.spawn('ssh root@host-021')
child.expect('assword:')
child.sendline('secret_password')
child.sendline('ls')
child.sendline('exit')
这反过来会屏蔽输出,但您可以设置一个日志文件来记录输出。您也可以像这样将日志文件设置为 STDOUT child.logfile = sys.stdout
。
你可以用它做更多可能对你有用的事情,并显示在文档中。
于 2012-11-12T17:48:10.827 回答