Existem duas soluções comuns , stdbuf
e unbuffer
.
stdbuf
é do GNU coreutils, foi adicionado na versão 7.5 em 2009, então chegou a todos os atuais sistemas Linux não embarcados além do CentOS 5. Ele também está no FreeBSD desde a versão 8.4. Nenhuma outra variante unix a adotou ainda que eu saiba, e em particular não o OpenBSD a partir de 5.4.
unbuffer
é um script Esperar e, como tal, está disponível em qualquer lugar que Expect esteja disponível, o que inclui praticamente qualquer unix. Todas as variantes do BSD o possuem em sua coleção de portas, no pacote expert
.
Portanto, instale o pacote expect
e execute unbuffer hping … | perl …