やりたいこと
35.5 ~ 36.9のあいだで乱数を出したい
0からxまでの乱数はかんたんだが、0以外からの乱数は難しかった。
コード
#!/usr/bin/env bashlist=($(seq 355 369))declare-iout=0
while(( out == 0));do
out=$(printf"%s\n""${list[@]}" | head-n$(( RANDOM %${#list[@]})) | tail-n 1)done
echo"scale=1; ${out} / 10" | bc
少数の扱いは面倒なので整数を最後に10で割った。
seqで出力してから、0から行数分までの乱数でランダムに1行取り出す
ただし乱数が0になると何も出力されないのでwhile
で0以外になるようにループさせた。
最後に
絶対もっとかんたんで賢い方法がある。配列とか変数とか使っててめちゃくちゃ面倒。