Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2722

Bashで指定した範囲での乱数を出力する

$
0
0

やりたいこと

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以外になるようにループさせた。

最後に

絶対もっとかんたんで賢い方法がある。配列とか変数とか使っててめちゃくちゃ面倒。


Viewing all articles
Browse latest Browse all 2722

Trending Articles