回答:
配列を使用して値を保持し、組み込み変数を使用して値の中から選択します$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:人々がコメントで見たように、配列要素を個別に初期化する代わりに、もちろん配列litteral:を使用できますx=(10 100 1000)
。
注2:配列内の要素数をハードコーディングする代わりに、によってradom要素を抽出できます${x[$RANDOM%${#x[@]}]}
。
x=(10 100 1000)
のbashでリテラルから配列を作成し、これは、より読みやすく、より慣用だろう
x[0]=10 # This sets the first value of x to ten. Ten is the number of fingers that humans have (excepting birth defects or mutilation). It is also the sum of 9 and 1, or product of 5 and 2. Ten is not prime. A traditional Christmas gift is ten lords a-leaping.
そのような何か?