You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从adb devices命令输出中仅筛选状态为device的设备IP地址

适配需求的修改方案

你原脚本的问题是仅提取了所有行的第一列内容,没有对第二列的设备状态做过滤,所以会命中所有状态的设备。可以通过awk直接筛选状态为device的行,修改后的完整脚本如下:

#!/bin/bash
# 仅提取状态为device的设备地址
device_list=$(adb devices | awk '$2 == "device" {print $1}')

echo "正常可连接设备列表:"
echo "$device_list"

for x in $device_list
do
    echo "尝试连接设备:$x"
    adb connect "$x"
done

修改说明

  • 替换原有的cut切分逻辑为awk条件筛选:awk '$2 == "device" {print $1}'会逐行校验adb devices的输出,仅当行的第二列值严格等于device时,才输出该行第一列的IP+端口信息
  • 自动跳过表头:表头行List of devices attached的第二列值为of,不匹配筛选条件,不需要额外编写if判断跳过List关键词
  • 完全保留原脚本的输出、连接逻辑,仅调整设备列表提取规则,适配你的过滤需求

内容的提问来源于stack exchange,提问作者Sasha Milic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 06:06:00