por que a saída de xargs -n2 se aplica ao mesmo número de argumentos diferentes, seja canalizado ou do teclado?

4

quando executo xargs -n2 , digito x x x x x e teco Enter , recebo apenas 4 x de volta:

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

Mas, quando canalizo x x x x x para o mesmo comando, recebo a mesma quantia de xback:

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

Por que é que no primeiro cenário a quantidade de argumentos é arredondada ou arredondada para baixo?

    
por Abdul Al Hazred 24.03.2015 / 13:23

1 resposta

5

Na primeira linha, xargs ainda aguarda o segundo argumento ou o final da entrada. Depois de pressionar Ctrl - D xargs continua com o resto e você verá o 5 x como argumento único.

Este exemplo pode explicar o comportamento:

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

Saída:

x x
x x
x x     # after 5 seconds

Após o 6º x na segunda instrução echo , o fluxo de entrada está concluído e xargs finalmente tem o segundo argumento, mas até então aguarda os 5 segundos.

    
por 24.03.2015 / 14:19