Closed tsctsc6 closed 1 month ago
通常命令行工具的标准输出一般用来输出“结果”,比如 maa dir xxx
, version
和 maa run xxx
最后的 Summary 都是输出到标准输出的,而日志或者其他相关的信息被最终到标准错误。这样的主要原因是为了防止日志信息被捕获。
比如以下用来获取 MaaCore 版本信息的命令里日志被输出到 stderr,而版本被输出到 stdout:
$ MAA_LOG=Debug maa version maa-core
[2024-10-25 12:01:11 DEBUG] Loading MaaCore from: /Users/loong/Library/Application Support/com.loong.maa/lib # Stderr
MaaCore v5.8.0-beta.2 # Stdout
这样确保 MAA_CORE_VERSION=$(maa version maa-core)
这样的任务可以正确的捕获到版本信息而不被日志信息污染。如果你想处理日志的等级,目前你可以考虑通过解析每一条日志的前缀来获得。此外 maa-cli 预计之后会提供一个 RPC 模式,到时候外部程序就可以更方便的处理日志了。
原来如此
读取传统命令行标准输出还有一点就是,不太能读取到丰富多彩的字体颜色...特别是有些改变控制台字体颜色,是通过改变控制台本身来实现的,而不是通过ASNI控制码来实现的。