Suponha que eu tenha um servidor http funcionando em execuçãoexample.com:8080
No Ubuntu, este comando
$curl http://example.com:8080/
dá
<h1>hello</h1>
enquanto o git-bash no Windows fornece informações extras de conexão
Como obtenho a saída mais simples, como a do Ubuntu? Em outras palavras, é viável silenciar as informações extras de conexão para o git-bash no Windows?
De acordo com o meu
man curl
,-q
não faz o que você acha que faz:Você provavelmente quer usar a opção
-s
:Esta é a saída de status de ondulação regular, aparecendo apenas em uma situação inesperada. Você normalmente veria esse tipo de barra de progresso ao redirecionar a saída do curl para um arquivo (ou qualquer outra coisa além de um terminal) e, nesses casos, você precisaria da
-s
opção de suprimi-lo.Agora, a barra de progresso não deve aparecer quando o curl já está sendo enviado para um terminal - o problema aqui é que, devido à maneira como os "terminais" funcionam no Windows (e especialmente quando o MSYS' MinTTY se envolve), o curl pode realmente não entender o que é está escrevendo para.
O git-bash usa o kit de ferramentas MSYS para emular certos recursos do Unix - parece que você está usando o terminal MinTTY, que faz várias coisas para emular a funcionalidade "pseudo-terminal" do estilo Unix em cima da entrada/saída do console nativo do Windows , que tradicionalmente funcionava de maneira muito diferente do Unix tty - por muito tempo o Windows simplesmente não tinha nada nem remotamente parecido com os dispositivos Unix tty, portanto, para obter um comportamento de "stream" semelhante ao Unix, o MinTTY provavelmente teve que usar pipes .
Portanto, é muito provável que apenas os programas criados especificamente para o MSYS reconheçam o MinTTY como um "terminal" (ou seja, sejam capazes de entender sua emulação), enquanto os programas nativos do Win32, como o curl.exe interno do Windows, verão a saída sendo anexado a um pipe, como se curl estivesse sendo usado em um pipeline, e isso faz com que ele ative a exibição da barra de progresso.
Ele não deve aparecer se você usar a versão MSYS do curl.exe, mas, caso contrário, use
-s
para desativá-lo à força.