簡単なコマンド(Kafka 関連のコマンド)を実行しています。
curl localhost:8083
出力は非常にシンプルです:
root@debian:/etc/kafka# curl localhost:8083/
{"version":"0.11.0.0-cp1","commit":"6a8cf706ddc9ab6a"}root@debian:/etc/kafka#
しかし、ユーティリティ ツールを使用してjq
json をフォーマットすると、さらに行が追加されます。
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"
}
予想どおりにless
またはにパイプした場合も同じことが起こります。したがって、これはそれ自体とは関係ありません。cat
curl ... | less
jq
stdin、stdout、stderr、パイプ (stdout と sdtin の結合)、ファイル リダイレクト> < 2>
などに関する私の知識では、この動作を説明できません。:(
答え1
多くの UNIX ツールと同様に、 の出力は、curl
stdout が接続されているデバイスの種類によって異なります。この場合、出力をパイプすると、jq
タイプが から に変更されTTY
、pipe
不要な追加出力が発生します。
curl
-s
には、この追加出力を無音にするコマンドラインスイッチがあるため、 curl -s localhost:8083/ | jq
shold を実行すると問題は解決します。