V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
didikee
V2EX  ›  问与答

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

  •  
  •   didikee · 2020-07-29 17:20:50 +08:00 · 1396 次点击
    这是一个创建于 1339 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近准备写一个简单的工具,帮助测试人员可以有一个图形界面安装安卓 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 内容。

    6 条回复    2020-07-30 09:18:47 +08:00
    Xusually
        1
    Xusually  
       2020-07-29 17:30:08 +08:00   ❤️ 1
    java -version &> output.log
    读取 output.log
    didikee
        2
    didikee  
    OP
       2020-07-29 18:04:12 +08:00
    @Xusually 感谢,我刚刚试了一下,日志写入了文件,读取文件即可得到日志。非常感谢提供了不错的思路。
    我应该早点发帖子🤣😂
    xiaoxinshiwo
        3
    xiaoxinshiwo  
       2020-07-29 19:35:35 +08:00
    python:os.popen('java -version').read()
    ysc3839
        4
    ysc3839  
       2020-07-29 23:44:47 +08:00 via Android
    估计是输出到了 stderr,不能直接用 POSIX API 来读取吗?一定要用 macOS API 吗?
    didikee
        5
    didikee  
    OP
       2020-07-30 09:03:10 +08:00
    @ysc3839 主要是我不懂😭,我本身是做安卓开发的
    ysc3839
        6
    ysc3839  
       2020-07-30 09:18:47 +08:00 via Android
    @didikee 网上一搜就有很多吧,POSIX pipe 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2820 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:24 · PVG 21:24 · LAX 06:24 · JFK 09:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.