如何运行adb shell命令并保留在shell中?

时间:2012-02-21 18:47:15

标签: android shell adb

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

我尝试了以下内容但没有成功

adb shell <<< "ls"

执行此命令后确实保留在shell中,但无法接收任何进一步命令的输出。

我也尝试了以下内容:

adb shell <<EOF
ls
EOF

具有相同的结果。

3 个答案:

答案 0 :(得分:15)

当你跑步时:

adb shell ls

您正在ADB之外运行此命令。

首先,您需要输入ADB:

adb shell

进入ADB shell后,您可以继续查看输出并输入更多命令。

ls
help

要退出ADB,只需输入“退出”或点击“Ctrl + C”

即可

答案 1 :(得分:3)

expect解决方案

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 O guest中测试。

答案 2 :(得分:2)

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

简而言之,从终端运行以下命令:

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

注意:如果没有stty魔法,则命令将通过管道传送到adb,并且无法识别标签完成等。