3つの数字(10、100、1000)からランダムに選択された変数

3つの数字(10、100、1000)からランダムに選択された変数

所定の3つの数字の中から乱数を選択する変数を持つことはできますか?

サンプル:

var= 10 or 100 or 1000

ベストアンサー1

配列を使用して値を保持し、組み込み変数を使用してその中から選択します$RANDOM。例えば、

x[0]=10     # One decade
x[1]=100    # One century
x[2]=1000   # One millennium

for ((i=1; i < 20; ++i)); do echo -n " ${x[$RANDOM%3]}"; done; echo
1000 10 10 10 10 100 10 100 100 10 10 100 100 100 10 1000 1000 1000 10

ランダム性の質は最高ではありませんが(バイトを読む/dev/urandom)、スクリプトには十分です。

注1:x=(10 100 1000)人々がコメントで観察したように、配列要素を個別に初期化する代わりに配列リテラルを使用することはもちろん可能です。

ノート2:配列内の要素数をハードコーディングする代わりに、任意の要素を抽出できます${x[$RANDOM%${#x[@]}]}

おすすめ記事