- Os comandos têm vários fluxos padrão: Standard Out (stdout), Standard In (stdin) e Standard Error (stderr).
- Pipes enviam o stdout de um comando para o stdin de outro comando
- Kill recebe seus parâmetros por meio de sua lista de argumentos, e não dos fluxos "padrão"
- Alguns comandos permitem que você especifique "-" no argumento para aceitar entrada de stdin como argumentos (não o comando
kill
) - Se você quiser canalizar stdout para a lista de argumentos de outra pessoa, use
xargs
, mas é preciso ter cuidado quando houver espaços em potencial-- e às vezes em outros casos ).
No seu caso, jobs -p não devem ter problemas com xargs e você pode usar o seguinte:
jobs -p | xargs kill
Se você gosta, você também pode ver os comandos exatos que ele executa usando --verbose (ou -t)
jobs -p | xargs --verbose kill
jobs -p | xargs -t kill
xargs
é uma ferramenta poderosa. Tenha muito cuidado ao passar a entrada para ele ( find -print0
, grep -Z
e xargs -0
se dão bem quando se trabalha com arquivos). Vale a pena o esforço para utilizá-lo (e, às vezes, economizar tempo).