Pexpect 进程终止而不是发送命令
Pexpect process dies instead of sending command
所以,我正在尝试构建一个 python 脚本来打开 Apache Karaf 并自动安装一些功能。我试过使用 Subprocess 的 Popen,但我发现它出奇地复杂。有人建议我使用 pexpect 库。
到目前为止我已经想到了这个:
karaf = "bash /home/karaf_test/bin/karaf"
p = pexpect.spawn(karaf)
p.logfile = p.stdout.buffer
p.expect("root", timeout=10)
p.sendline(feature_install)
Karaf 的子 shell 正确打开并且 feature_install 字符串似乎通过了,但进程在没有实际执行命令后立即终止。
There's a screenshot for clarity.
我查看了文档,但似乎一切正常,我不知道为什么它不执行。我试过 运行 send() 而不是 sendline() 无济于事。如果有人对此有任何建议,我将非常感激。
p.expect("root", timeout=10)
希望模式不在 string.so 像这样更改您的代码
p.expect(".*@.*()>",timeout=10)
所以,我正在尝试构建一个 python 脚本来打开 Apache Karaf 并自动安装一些功能。我试过使用 Subprocess 的 Popen,但我发现它出奇地复杂。有人建议我使用 pexpect 库。
到目前为止我已经想到了这个:
karaf = "bash /home/karaf_test/bin/karaf"
p = pexpect.spawn(karaf)
p.logfile = p.stdout.buffer
p.expect("root", timeout=10)
p.sendline(feature_install)
Karaf 的子 shell 正确打开并且 feature_install 字符串似乎通过了,但进程在没有实际执行命令后立即终止。 There's a screenshot for clarity.
我查看了文档,但似乎一切正常,我不知道为什么它不执行。我试过 运行 send() 而不是 sendline() 无济于事。如果有人对此有任何建议,我将非常感激。
p.expect("root", timeout=10)
希望模式不在 string.so 像这样更改您的代码
p.expect(".*@.*()>",timeout=10)