为什么当 运行 "python --version" 来自 groovy 时标准输出为空?
Why is the stdout empty when running "python --version" from groovy?
我目前正在为 Apache PLC4X 项目编写飞行前检查脚本。我在那里检查是否存在所需的第三方工具及其版本。
如果我在命令行上 运行 "python --version",我会得到很好的响应。
但是如果我 运行 它在 Groovy:
print "Detecting Python version: "
def output = ("python --version").execute().text
我刚得到一个空字符串。
所有其他工具都不会显示此行为。所有其他人在 "output".
中都有控制台输出
我怎样才能做我想做的检查?我做错了什么?
不要假设您在终端上看到的所有内容都是标准输出。
信息性消息经常发送到标准错误,以避免它们被任何处理管道捕获(这就是为什么在早期的 UNIX 时代创建这两个通道的原因)。
我目前正在为 Apache PLC4X 项目编写飞行前检查脚本。我在那里检查是否存在所需的第三方工具及其版本。
如果我在命令行上 运行 "python --version",我会得到很好的响应。
但是如果我 运行 它在 Groovy:
print "Detecting Python version: "
def output = ("python --version").execute().text
我刚得到一个空字符串。 所有其他工具都不会显示此行为。所有其他人在 "output".
中都有控制台输出我怎样才能做我想做的检查?我做错了什么?
不要假设您在终端上看到的所有内容都是标准输出。
信息性消息经常发送到标准错误,以避免它们被任何处理管道捕获(这就是为什么在早期的 UNIX 时代创建这两个通道的原因)。