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

先贴出来成功的脚本吧

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

谁能帮我解释下,为什么是这样呢?

阅读 11.1k
1 个回答

报错的原因可能是前面的命令没有执行完就去执行下一个命令了。执行sleep 2后会暂停两秒,这两秒的等待时间前面的命令已经执行完了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题