为何adb连接失败时返回0退出状态?此现象是否属adb正常行为?
adb connect失败却返回0退出码的原因及是否正常
这种现象是adb的正常表现,核心原因在于adb对退出码的定义逻辑:
- adb的退出码仅用来标识命令本身是否被客户端正确执行,而非操作目标是否达成。
- 只要命令格式合法(比如
adb connect后跟了正确格式的设备地址),adb客户端能正常发起请求并收到远程端的响应(哪怕是连接拒绝的响应),就会返回退出码0。 - 只有当命令存在语法错误、adb客户端自身崩溃等命令执行层面的异常时,才会返回非0退出码。
结合你的操作示例:
$ adb connect 123.123.123.123:123 failed to connect to '123.123.123.123:123': Connection refused $ echo $? 0
这里命令格式完全正确,adb成功发送了连接请求,只是远程设备拒绝了连接——这属于“命令执行成功但连接目标未达成”,因此返回0。
举个反例,当命令语法错误时,adb会返回非0退出码:
$ adb connect error: device name must be specified $ echo $? 1
内容的提问来源于stack exchange,提问作者pmor
相关产品推荐
相关产品推荐

