我希望将 adb shell 命令发送到将输出从 1 个命令传输到其他命令的 Android 设备,但是当我尝试这样做时,只有第一个命令在设备上执行,第二个命令在主机上执行. 这是我尝试过的:
adb shell command1 | command2
command1 在设备上执行,而 command2 在主机上执行。
我怎样才能让它正常工作?
谢谢!
你可以使用这样的东西:
adb shell "command1 | command2"
一种方法是创建一个包含所需命令的 shell 脚本,然后运行 shell 脚本。
由于 Android 根文件系统在运行时不可写入(通常,除非您已将设备植根并重新挂载它),您可以将文件复制到可移动(或模拟)存储,例如/sdcard
.
然后使用命令运行脚本adb shell sh /sdcard/your-script-name
。因为每个脚本都在自己的子 shell 中运行,所以您的两个命令都将在设备上的同一个 shell 中执行(您可以使用 确认ps
)。
adb shell "command1 && command2"
例子:
/system/lib 下包含 'foo' 的所有文件的递归列表:
adb shell "cd /system/lib&&ls -lR .|grep -i foo"
重要的是双引号和双&符号。
唯一的问题是您也不能将其用于输入,这意味着运行需要使用单行输入标准输入的可执行文件将无法正常工作,因为它需要用户干预。