使用 Groovy,如何捕获运行另一个进程的 shell 命令的控制台输出(System.out
和)?System.err
实际上,我正在运行prettier
使用并尝试捕获两个进程的输出,就像我在 shell 中yarn
运行命令时看到的那样。yarn
运行yarn prettier --check .
收益率
yarn run v1.22.17
$ /my-project/node_modules/.bin/prettier --check .
Checking formatting...
[warn] some-file.ts
[warn] another-file.ts
[warn] Code style issues found in 2 files. Run Prettier with --write to fix.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
这是我想要捕获的输出。但是,Groovy 代码
def check = "yarn prettier --check .".execute()
check.waitFor()
println check.getText()
仅产生
yarn run v1.22.17
$ /my-project/node_modules/.bin/prettier --check .
Checking formatting...
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
缺少 Prettier 的输出。在我看来,Groovy 似乎只捕获了 Yarn 进程的输出,而不是 Yarn 生成的 Prettier 进程的输出。
是否也可以捕获 Prettier 中缺失的输出?我意识到我可以直接从 Groovy 运行 Prettier,但由于其他配置,我想避免这样做。