for ((i=0; i<10; i++)); do
java testerPackage.BubblerSimulation &
javapid=$!
sleep 10
kill -TERM $javapid
wait $javapid
done
Usando & depois que um comando é executado em segundo plano e continua no próximo comando. Em seguida, capturamos o pid (ID do processo) do último comando em segundo plano que está no valor de variável especial de $! .
sleep é um comando que simplesmente pausará pelo número especificado de segundos.
Em seguida, usamos o comando kill com o pid capturado para informar ao processo java para finalizar a si mesmo e aguardar a limpeza ser concluída antes de repetir a próxima execução do loop.