Muitos programas armazenarão em buffer sua saída, ou o shell armazenará em buffer, portanto, não estará necessariamente aguardando até que o script seja concluído, mas até que o buffer (geralmente 4096 bytes) esteja cheio. No script, você pode liberar manualmente o buffer sempre que quiser. Como alternativa, você pode tentar um pacote externo como unbuffer .