Android Bash:枚举所有连接的设备
我把几个安卓设备插到我的笔记本电脑上。我可以按顺序列出他们的序列号Android Bash:枚举所有连接的设备,android,bash,awk,Android,Bash,Awk,我把几个安卓设备插到我的笔记本电脑上。我可以按顺序列出他们的序列号 adb设备 输出: List of devices attached 015d4a826e0ffb0f device 015d4a826e43fb16 device 015d41d830240b11 device 015d2578a7280b02 device 我想在每个设备上执行一些操作,比如 adb-s$device install foo.apk 但是我不知道如何让variabledevice迭
adb设备
输出:
List of devices attached
015d4a826e0ffb0f device
015d4a826e43fb16 device
015d41d830240b11 device
015d2578a7280b02 device
我想在每个设备上执行一些操作,比如
adb-s$device install foo.apk
但是我不知道如何让variable
device
迭代所有通过adb设备获得的设备
在bash
中实现的方法。读取命令的输出,并在第二列中使用while循环对其进行迭代
while read sn device; do
adb -s "$sn" install foo.apk
done < <(adb devices | sed '1d')
读取sn设备时;做
adb-s“$sn”安装foo.apk
完成<主要技巧是将设备序列与其他输出分开。您需要切断标题和第二列。类似这样的方法会奏效:
for DEVICE in `adb devices | grep -v "List" | awk '{print $1}'`
do
adb -s $DEVICE install foo.apk
done
您可以使用xargs
和awk
:
adb devices | awk 'NR>1{print $1}' | xargs -n1 -I% adb -s % install foo.apk
演示:
我将您的输入放入文件
,并使用echo
检查输出:
$ awk 'NR>1{print $1}' file | xargs -n1 -I% echo adb -s % install foo.apk
adb -s 015d4a826e0ffb0f install foo.apk
adb -s 015d4a826e43fb16 install foo.apk
adb -s 015d41d830240b11 install foo.apk
adb -s 015d2578a7280b02 install foo.apk
这将尝试在设备上安装apk:“of,attached,device,device,device…”TC需要串行(第一列)和所有,但第一行(已连接的设备列表)我从未使用过adb
,因此不确定这是否是OP为清晰起见添加的实际输出。我更新了答案,在输入while循环之前删除了第一行。感谢您的反馈!:)OP还需要$sn
,而不是$device
,但其主要思想是正确的;-)@OlegSKleshchook再次感谢!