`while` works with any command, not just `[`, and I think we generally try not to poll the device in a tight loop.  So, this loop could be something like:
```shell
while ${ADB} shell true 2>/dev/null
do sleep 1
done
```