Piping StdOut은 더 많은 텍스트를 추가합니다.

Piping StdOut은 더 많은 텍스트를 추가합니다.

간단한 명령(일부 Kafka 관련 항목)을 실행하고 있습니다.

curl localhost:8083

출력은 매우 간단합니다.

root@debian:/etc/kafka# curl localhost:8083/
{"version":"0.11.0.0-cp1","commit":"6a8cf706ddc9ab6a"}root@debian:/etc/kafka#

하지만 이제 유틸리티 도구를 사용하여 jqjson 형식을 지정하면 더 많은 줄이 추가됩니다.

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파이프 를 연결하는 경우에도 마찬가지입니다 . 따라서 이것은 그 자체와는 아무런 관련이 없습니다 .catcurl ... | lessjq

모든 stdin, stdout, stderr, 파이프(stdout을 sdtin에 조인한 것임), 파일 리디렉션 > < 2>등에 대한 나의 지식으로는 이 동작을 설명할 수 없습니다. :(

답변1

많은 UNIX 도구와 마찬가지로 의 출력은 curlstdout이 연결된 장치 유형에 따라 달라집니다. 이 경우 출력을 파이프로 연결하면 jq유형이 에서 로 변경되어 TTY원치 pipe않는 추가 출력이 발생합니다.

curl-s이 추가 출력을 침묵시키는 명령줄 스위치가 있으므로 curl -s localhost:8083/ | jqshold를 실행하면 문제가 해결됩니다.

관련 정보