在 Windows 上将 git-bash 的额外连接信息静音是否可行?

在 Windows 上将 git-bash 的额外连接信息静音是否可行?

假设我有一个运行在example.com:8080

在 ubuntu 上,此命令

$curl http://example.com:8080/

给出

<h1>hello</h1>

而 Windows 上的 git-bash 提供了额外的连接信息

在此处输入图片描述

如何获得更简单的输出,如 ubuntu 上的输出?换句话说,是否可以在 Windows 上静音 git-bash 的额外连接信息?

答案1

根据我的说法man curl-q它并没有按照你想象的那样做:

       -q, --disable
              If used as the first parameter on the command line, 
              the curlrc config file will not be read and used. 
              See the -K, --config for details on the default 
              config file search path.

您可能想要使用选项-s

       -s, --silent
              Silent or quiet mode. Don't show progress meter or error messages.
              Makes Curl mute. It will still output the data you ask for, 
              potentially even to the terminal/stdout unless you redirect it.

              Use -S, --show-error in addition to this option to disable 
              progress meter but still show error messages.

答案2

这是常规的 curl 状态输出,仅在意外情况下显示。当将 curl 的输出重定向到文件(或终端以外的其他东西)时,您通常会看到这种进度条,在这种情况下,您需要选择-s隐藏它。

现在进度条不应该当 curl 已经输出到终端时显示——这里的问题是由于 Windows 中“终端”的工作方式(尤其是当 MSYS 的 MinTTY 参与其中时),curl 实际上可能不理解它正在写入什么。

git-bash 使用 MSYS 工具包来模拟某些 Unix 功能——看起来你正在使用 MinTTY 终端,它可以在 Windows 本机控制台输入/输出之上执行各种操作来模拟 Unix 风格的“伪终端”功能,而这在传统上是有效的非常与 Unix tty 不同——很长一段时间以来,Windows 根本没有任何类似 Unix tty 设备的东西,因此为了实现类似 Unix 的“流”行为,MinTTY 很可能不得不使用管道。

因此,很可能只有专门为 MSYS 构建的程序才会将 MinTTY 识别为“终端”(即能够理解其模拟),而本机 Win32 程序(例如 Windows 内置的 curl.exe)将会看到输出附加到管道,就像在管道中使用 curl 一样,这会导致它激活进度条显示。

如果您使用 MSYS 版本的 curl.exe,它就不会出现,否则请-s强制将其关闭。

相关内容