gpt4 book ai didi

android - 为什么 adb push/pull 将 STDOUT 重定向到 STDERR?

转载 作者:行者123 更新时间:2023-11-29 14:14:41 25 4
gpt4 key购买 nike

当使用“adb pull ...”时,无论是否成功,输出都会发送到 stderr。这有什么理由吗?例如,拉取存在的文件和拉取不存在的文件:

当我运行时:

adb pull /data/data/good_file.txt /tmp`

我得到以下信息:

stdout:
stderr: 0 KB/s (13 bytes in 0.078s)

(即没有标准输出)

然后当我运行时:

adb pull /data/data/bad_file.txt /tmp

我得到以下信息:

stdout:
stderr: remote object '/data/bad_file.txt' does not exist

下面的程序用于生成上述结果:

from subprocess import Popen
cmd = "adb pull /data/data/good_file.txt /tmp"
p = Popen(cmd.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
print cmd
print "stdout: " + out
print "stderr: " + err

最佳答案

我有同样的问题:adb install -r/foo/bar.apk 听起来像 adb 总是将他的结果发送到 stderr,只需添加 2>&1 最后,它解决了问题。

cmd = "adb pull /data/data/good_file.txt /tmp 2>&1"

The 2>&1 just redirects Channel 2 (Standard Error) and Channel 1 (Standard Output) to the same place which in this context is Channel 1 (Standard Output), and thence your log file.

关于android - 为什么 adb push/pull 将 STDOUT 重定向到 STDERR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25762014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com