Você pode pensar na execução assim:
-
curl -v ...
,sleep 5
,pkill curl
são quase executados simultaneamente - É bem possível que, quando
pkill curl
for executado, o primeiro comandocurl
tenha acabado de receber alguns dados. E então é morto. - A substituição do comando
$( ... )
envolvendo a coisa toda aguarda até que todos os comandos terminem. Consulte Por que a função não retorna até que o processo em segundo plano termine? Só então ela apresenta toda a saída que possui, é qualquer dadocurl
recebido. Corra, digamos,echo $(date & sleep 5); date
para verificar isso - você terá que esperar que a primeira saída apareça. - Repetir.
Então você vê a saída de curl
(em vez disso, você está executando a saída da substituição do comando aqui, não sei por que) uns cinco segundos após curl
ter sido morto.
Note: By force of curl's attacking parameter, curl is pending.
Não faz ideia do que você quer dizer com "parâmetro de ataque".