Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android adb在使用脚本连接到设备时出现异常_Android_Bash_Shell_Adb_Xargs - Fatal编程技术网

Android adb在使用脚本连接到设备时出现异常

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

我正在尝试自动化一些事情,并让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.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的详细输出看起来很好的时候!