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