Android adb在使用脚本连接到设备时出现异常
我正在尝试自动化一些事情,并让adb连接到设备列表。我使用curl检索IP列表,但为了简单起见,我现在只使用一个简单的文件,内容如下:Android adb在使用脚本连接到设备时出现异常,android,bash,shell,adb,xargs,Android,Bash,Shell,Adb,Xargs,我正在尝试自动化一些事情,并让adb连接到设备列表。我使用curl检索IP列表,但为了简单起见,我现在只使用一个简单的文件,内容如下: 192.168.1.108 192.168.1.54 我试着去执行 cat devices | xargs -L1 -t ./adb connect 导致 /adb connect 192.168.1.108 :5555cted to 192.168.1.108 /adb connect 192.168.1.54 :5555cted to 192.168.1
192.168.1.108
192.168.1.54
我试着去执行
cat devices | xargs -L1 -t ./adb connect
导致
/adb connect 192.168.1.108
:5555cted to 192.168.1.108
/adb connect 192.168.1.54
:5555cted to 192.168.1.54
亚洲开发银行设备收益率
List of devices attached
:555568.device
:555568.unauthorized
这对我来说毫无意义。
如果我手动输入connect命令,adb设备会说
List of devices attached
192.168.1.108:5555 offline
192.168.1.54:5555 offline
:555568.device
:555568.unauthorized
除了这两个奇怪的设备,这更像我所期望的。对我来说,似乎输入命令是相同的,但输出是不同的,但什么原因造成的差异?
我也试过简单的边读边做。。。结束脚本,导致相同的奇怪行为
谢谢,我认为问题最有可能是由于从Windows机器复制粘贴文本时出现了CRLF行终止符。您可以通过执行以下操作来检查
file devices
devices: ASCII text, with CRLF line terminators
您需要将CRLF转换为LF,为此您可以运行此命令
dos2unix devices
为什么xargs有-t标志?在执行之前,它会在标准错误输出上打印命令行。您可以删除它并尝试一下吗?我已经有一段时间没有使用xargs和shell脚本了,所以我只是添加它来检查执行了什么。我试过使用和不使用,当然除了显示的命令外没有什么区别。您是否检查了从curl输出中收到的文件中是否有任何CRLF文件结尾DOS样式的行结尾?在运行adb命令之前,可以尝试在文件上运行dos2unix设备,这实际上解决了问题!它并没有变得如此简单,尤其是当xargs的详细输出看起来很好的时候!