Seu loop while pode ser substituído por um loop for. Como o Bash não pode lidar com aritmética de ponto flutuante, você deve usar números inteiros normais e usar um programa como bc para criar floats. O comando scale=1; antes de $i/10 garante que sempre haja um único decimal (por exemplo, 0,1).
for ((i=1; i<=10; i++))
do
p=$(bc <<<"scale=1;$i/10")
echo ----probability---- $p
java $jvmargs -classpath $CP jbenchmarker.MainSimulation $p
done
Isso é equivalente a:
i=1
while ((i<=10))
do
p=$(bc <<<"scale=1;$i/10")
echo ----probability---- $p
java $jvmargs -classpath $CP jbenchmarker.MainSimulation $p
((i++))
done
command <<<... é um truque que grava ... na entrada padrão de command e é equivalente a echo ... | command