Que tal:
echo {1..4} | xargs -n1 -I{} ssh root@www{}.example.com hostname
De man xargs :
-n number
Set the maximum number of arguments taken from standard input for each invocation of utility.
No Linux, você pode usar xargs -d, para executar rapidamente o comando hostname em quatro servidores diferentes com nomes sequenciais da seguinte forma:
echo -n 1,2,3,4 |xargs -d, -I{} ssh root@www{}.example.com hostname
Parece que o comando xargs do OSX não suporta o parâmetro delimitador. Você consegue o mesmo resultado com um echo formatado de maneira diferente ou por meio de algum outro utilitário de linha de comando?
Alternativamente, você sempre pode instalar o GNU xargs através do Homebrew e do pacote GNU findutils .
Instale o Homebrew:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Siga as instruções. Então instale findutils:
brew install findutils
Isso lhe dará GNU xargs as gxargs , e você pode usar a sintaxe a que você está acostumado a partir do GNU / Linux. O mesmo vale para outros comandos básicos encontrados no pacote findutils, como gfind ou glocate ou gupdatedb , que têm diferentes contrapartes BSD no OS X.
Se você quer rodar em paralelo, use o GNU Parallel:
parallel ssh root@www{}.example.com hostname ::: {1..4}