有没有人知道如何从adb shell运行命令并保留在shell会话中? 我想要实现的是在adb shell中设置别名。
我尝试了以下内容但没有成功
adb shell <<< "ls"
执行此命令后确实保留在shell中,但无法接收任何进一步命令的输出。
我也尝试了以下内容:
adb shell <<EOF
ls
EOF
具有相同的结果。
答案 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
,并且无法识别标签完成等。