동일한 수의 인수에 적용된 xargs -n2의 출력이 파이프를 통하든 키보드를 통하든 다른 이유는 무엇입니까?

동일한 수의 인수에 적용된 xargs -n2의 출력이 파이프를 통하든 키보드를 통하든 다른 이유는 무엇입니까?

을 실행하고 xargs -n2입력 x x x x x하고 클릭 하면 Enter4배의 결과만 얻습니다.

$ xargs -n2
x x x x x 
x x 
x x 

x x x x x그러나 이것을 동일한 명령에 파이프하면 동일한 수의 x가 표시됩니다.

$ echo x x x x x | xargs -n2
x x 
x x 
x

첫 번째 경우 인수 수가 반올림되거나 내림되는 이유는 무엇입니까?

답변1

첫 번째 줄에서는 xargs여전히 두 번째 인수 또는 입력이 끝나기를 기다리고 있습니다. Ctrl-xargs를 눌러 D나머지를 계속 진행하면 다섯 번째 인수가 x단일 인수로 표시됩니다.

이 예에서는 이러한 동작을 설명할 수 있습니다.

(echo "x x x x x"; sleep 5; echo "x") | xargs -n2

산출:

x x
x x
x x     # after 5 seconds

x두 번째 문의 6번째 항목 이후에 echo입력 스트림이 완료되고 xargs마지막으로 두 번째 매개변수를 갖게 되지만 그 전에는 5초 동안 기다립니다.

관련 정보