Sto eseguendo un semplice comando (alcune cose relative a Kafka):
curl localhost:8083
Il suo output è molto semplice:
root@debian:/etc/kafka# curl localhost:8083/
{"version":"0.11.0.0-cp1","commit":"6a8cf706ddc9ab6a"}root@debian:/etc/kafka#
Ma ora, quando uso lo strumento di utilità jq
per formattare JSON, vengono aggiunte più righe:
root@debian:/etc/kafka# curl localhost:8083/ | jq
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 54 100 54 0 0 1492 0 --:--:-- --:--:-- --:--:-- 1500
{
"version": "0.11.0.0-cp1",
"commit": "6a8cf706ddc9ab6a"
}
Lo stesso succede se lo canalizzo less
o cat
nel modo previsto curl ... | less
. Quindi questo non ha nulla a che fare con jq
si.
Conosco tutte le deviazioni di stdin, stdout, stderr, (che sono solo join di stdout in sdtin), reindirizzamenti di file > < 2>
, ecc. non spiega questo comportamento. :(
curl
controlla, se stdout è un TTY o un pipe e adatta il suo output in base ad esso. Quindi per spegnerlo è necessario curl -s localhost:8083/
(-s per silent, no -q per quiet come pensavo)
curl -q localhost:8083