繁体   English   中英

我如何使用 python 脚本在 adb shell 中传递输入?

[英]how can i passs input in adb shell using python script?

我遇到了一个问题,在运行命令后必须传递一个输入:adb shell libtest_ip 到 python:

 import subprocess
 command = 'adb shell libtest_ip'
 p = subprocess.Popen(command, shell=True,
                         stdout=subprocess.PIPE, stderr=subprocess.PIPE)

在此之后,我必须传递 1 或 en_us 等输入。但是一旦执行 sun 二进制命令(libtest_ip 是二进制文件),它就会卡住。

如果有人知道如何解决这个问题,请帮助我?

我认为你最好的选择是pexpect 特别是您可以查看script.py ,它可以帮助您创建交互式脚本。

基本上,你应该得到这样的结果

    ...
    self.child.expect('Whatever')
    self.child.sendline('1')
    self.child.expect('Whatever 2')
    self.child.sendline('en-us')
    ...

更新

你的例子应该工作,试试

#! /usr/bin/env python3

import pexpect
print(pexpect.run('/bin/echo hello'))

并运行它应该 output

% ./test-pexpect.py 
b'hello\r\n'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM