やりたいこと
bashで配列の中身をランダムに抽出したい!
これってトリビアのタネになりませんか?
やり方
bashでは${#ARRAY[*]}
で配列のサイズが取得できる。
random_array.sh
#!/bin/bashreadonly ARRAY=("foo""bar""baz""qux""quux""corge")echo${#ARRAY[*]}# 6echo${#ARRAY[@]}# 6 @でも取得できるらしい。
次にランダムな値ですが、bashではRANDOMという謎の変数が用意されているらしい。
0〜32767までが範囲になっている。
random_array.sh
#!/bin/bashecho$RANDOM# 14067echo$RANDOM# 31125 値がランダムに取れている。echo$(($RANDOM%10))# 3 0〜9までの10パターンが取得できる。
これを組み合わせて使えば、配列からランダムな値が取得できる!
random_array.sh
#!/bin/bashreadonly ARRAY=("foo""bar""baz""qux""quux""corge")echo${ARRAY[$(($RANDOM%${#ARRAY[*]}))]}# foo