Featured image of post Random Selector Sh

Random Selector Sh

複数のリストの中からランダムにN個の要素を抽出するShellScriptを作ってみる。

1
vi random_selector.sh

Scriptの内容は以下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash

# 配列の定義
array=("apple" "banana" "cherry" "date" "elderberry" "fig" "grape" "honeydew" "kiwi" "lemon")

# アニメーションの表示関数
animate() {
  for i in {1..3}; do
    echo -ne "\rSelecting random items${dots}   "
    dots=$(printf "%0.s." $(seq 1 $i))
    sleep 1
  done
  echo -ne "\r                         \r" # アニメーション部分をクリア
}

# ランダムに配列から3つ抽出
random_items=($(shuf -e "${array[@]}" | head -n 3))

# アニメーションの実行
animate

# 結果を出力
echo "Randomly selected items: ${random_items[*]}"

実行権限を与え、

1
chmod +x random_selector.sh

実行する。

1
./random_selector.sh

3秒くらいくるくるアニメーションして、結果が表示される。

1
2
3
4
5
Selecting random items: Done!   
Randomly selected items:
- kiwi
- apple
- fig

macOSで動かす場合は shuf が入っていないため、coreutils をインストールして gshuf を利用する。

1
brew install coreutils

先ほどのスクリプトの shufgshuf に書き換えて再実行すればOK。

Built with Hugo
Theme Stack designed by Jimmy