Parece algo para gnu paralelo . Tente algo assim:
function server_ssh() {
parallel --line-buffer ssh server{} "$1" ::: 01 02 03
}
A opção --line-buffer
é necessária para permitir a combinação da saída dos diferentes comandos juntos (por padrão, agrupa a saída de cada comando juntos, portanto, é necessário aguardar até que cada um termine para ser exibido).
-u
deve funcionar aqui também. Normalmente, ele pode permitir que partes de linhas sejam misturadas, mas como os comandos que você está usando provavelmente são baseados em linhas, isso não deveria acontecer.
Editar: --line-buffer
está em teste alfa na versão que tenho (20130922-1), eu usaria -u
.