2012-02-21 160 views
4

有谁知道如何从adb shell运行命令并保留在shell会话中? 我试图实现的是在adb shell中设置别名。如何运行adb shell命令并保留在shell中?

我曾尝试没有成功

adb shell <<< "ls" 

执行此命令确实留在后壳下面,但不能接收任何进一步的命令的输出。

我也曾尝试以下操作:

adb shell <<EOF 
ls 
EOF 

具有相同的结果。

回答

9

当你运行:

adb shell ls 

您正在外面亚行运行此命令。

首先,您需要输入ADB:

adb shell 

一旦你进入亚行外壳,您可以继续看到输出和输入更多命令。

ls 
help 

要退出亚行,只需键入 “退出” 或按下 “Ctrl + C”

请让我知道,如果这有助于!

1

在评论here中回答了类似的问题。

总之,请从你的终端执行以下操作:

stty raw -echo ; (echo "ls" && cat) | adb shell ; stty sane

注:没有stty魔法,命令通过管道输送到adb和标签完整等不被认可。

0

期望的解决方案

adb-cmd

#!/usr/bin/env expect 
spawn adb shell 
expect "#" 
send [ concat [ join $argv " " ] ] 
send "\r" 
interact 

用法:

adb-cmd 'cd /data/data; ls' 

在Ubuntu 16.04主机,Android的Ø客人进行测试。