在 Macos 中用代码执行 shell 命令时如何才能获取日志输出?

2020-07-29 17:20:50 +08:00
 didikee

最近准备写一个简单的工具,帮助测试人员可以有一个图形界面安装安卓 AppBundle (.aab )文件到安卓手机。

工具传到 github 上了:https://github.com/didikee/AndroidAppBundleIntaller

但是现在没办法获取到输出日志,比如执行”java -version“控制台输出了

java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

这时如果能得到这个日志,我就能判断当前的电脑是否配置了 java 环境了。 第一次接触 Macos 开发,一个小功能卡住了=。=

看看有没有人知道怎么解决。 我试过Process里的fileHandleForReading.readDataToEndOfFile()fileHandleForReading.readabilityHandler

但是只能获取脚本里的 echo 内容。

1422 次点击
所在节点    问与答
6 条回复
Xusually
2020-07-29 17:30:08 +08:00
java -version &> output.log
读取 output.log
didikee
2020-07-29 18:04:12 +08:00
@Xusually 感谢,我刚刚试了一下,日志写入了文件,读取文件即可得到日志。非常感谢提供了不错的思路。
我应该早点发帖子🤣😂
xiaoxinshiwo
2020-07-29 19:35:35 +08:00
python:os.popen('java -version').read()
ysc3839
2020-07-29 23:44:47 +08:00
估计是输出到了 stderr,不能直接用 POSIX API 来读取吗?一定要用 macOS API 吗?
didikee
2020-07-30 09:03:10 +08:00
@ysc3839 主要是我不懂😭,我本身是做安卓开发的
ysc3839
2020-07-30 09:18:47 +08:00
@didikee 网上一搜就有很多吧,POSIX pipe 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/694095

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX