You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash脚本中模拟adb shell命令的用户输入?

解决ADB Shell交互式命令自动输入固定值的问题

以下几种方法可以解决你遇到的问题:

方法1:使用管道传递输入

这是最简洁可靠的方式,通过echo将输入值通过管道传递给ADB Shell中的命令,让命令直接读取标准输入的内容:

echo "1" | adb shell "your_interactive_command_here"

原理是adb shell会把本地的标准输入转发到设备端的命令进程,设备上的命令在等待输入时会直接读取到"1",无需手动交互。

方法2:使用Here-String传递输入

如果你的本地Shell支持Here-String(比如Bash),可以用更直观的写法:

adb shell "your_interactive_command_here" <<< "1"

效果和管道一致,将"1"作为输入传递给设备端的命令。

方法3:模拟物理键盘输入(适合特殊交互式场景)

如果上述管道方法无效(比如命令是图形化交互式程序,不读取标准输入),可以先启动命令,再通过adb input模拟键盘输入:

# 后台启动目标命令
adb shell "nohup your_interactive_command_here > /dev/null 2>&1 &"
# 短暂等待命令加载完成(时间根据实际情况调整)
sleep 1
# 模拟输入"1"并回车
adb input text "1" && adb input keyevent KEYCODE_ENTER

这种方法依赖等待时间,稳定性稍差,但适用于不接受标准输入的交互式场景。

注意:如果目标命令需要sudo权限,可调整写法结合输入:echo "1" | adb shell "echo 'your_sudo_password' | sudo -S your_interactive_command_here"

内容的提问来源于stack exchange,提问作者David Sevic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 17:57:00