shell 脚本中执行 adb 命令,如果每个命令之间不加入 sleep 2 这个,就会失败

2017-07-14 15:07:59 +08:00
 warcraft1236

先贴出来成功的脚本吧

for i in `cat ip.txt`
do
  adb disconnect
  adb connect ${i}
  sleep 2
  adb root
  sleep 2
  adb connect ${i}
  sleep 2
  adb remount
  sleep 2
  adb push librk_vpuapi.so /system/lib/
  sleep 2
  adb push libvpu.so /system/lib/
  sleep 2
  echo "start reboot ${i}"
  curl -X POST "http://${i}:9001/v1/system/reboot"
done

如果我把脚本中的sleep 2去掉的话,运行就会是这样的

connected to 10.20.18.148:5555
error: device offline
10.20.18.30

>connected to 10.20.18.30:5555
error: device offline
10.20.18.144

>connected to 10.20.18.144:5555
error: device offline
10.20.18.40
5241 次点击
所在节点    Linux
7 条回复
crayygy
2017-07-14 15:25:31 +08:00
给一点反应时间嘛
ReVanTis
2017-07-14 16:15:52 +08:00
试试 adb -s SERIAL wait-for-device
21grams
2017-07-14 16:26:44 +08:00
adb 什么版本的
zealot0630
2017-07-14 16:37:54 +08:00
adb root 会重起手机的 adb 进程,会导致 adb offline,再 adb 后面加一句 adb wait-xxx 可破
warcraft1236
2017-07-14 17:07:36 +08:00
@zealot0630 我是网络连接 adb 的,adb root 之后,就断开了,并不是 offline 啊,需要重新 adb connect,不重新 connect,直接 adb wait-device 没效果啊
kmahyyg
2017-07-14 17:28:43 +08:00
需要一个反应和认证时间,你自己先执行下 adb kill-server && adb start-server 看看这玩意启动要耗多长时间,尤其是版本不够高的情况耗时更长
264768502
2017-07-15 10:42:20 +08:00
root 后先 disconnect

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/375354

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX