didikee
V2EX  ›  问与答

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

  •  
  •   didikee · Jul 29, 2020 · 1961 views
    This topic created in 2172 days ago, the information mentioned may be changed or developed.

    最近准备写一个简单的工具,帮助测试人员可以有一个图形界面安装安卓 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 replies    2020-07-30 09:18:47 +08:00
    Xusually
        1
    Xusually  
       Jul 29, 2020   ❤️ 1
    java -version &> output.log
    读取 output.log
    didikee
        2
    didikee  
    OP
       Jul 29, 2020
    @Xusually 感谢,我刚刚试了一下,日志写入了文件,读取文件即可得到日志。非常感谢提供了不错的思路。
    我应该早点发帖子🤣😂
    xiaoxinshiwo
        3
    xiaoxinshiwo  
       Jul 29, 2020
    python:os.popen('java -version').read()
    ysc3839
        4
    ysc3839  
       Jul 29, 2020 via Android
    估计是输出到了 stderr,不能直接用 POSIX API 来读取吗?一定要用 macOS API 吗?
    didikee
        5
    didikee  
    OP
       Jul 30, 2020
    @ysc3839 主要是我不懂😭,我本身是做安卓开发的
    ysc3839
        6
    ysc3839  
       Jul 30, 2020 via Android
    @didikee 网上一搜就有很多吧,POSIX pipe 。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   957 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 22:30 · PVG 06:30 · LAX 15:30 · JFK 18:30
    ♥ Do have faith in what you're doing.