#宣告起始陣列
arr=(a b c d e f g h i j k l)
#取得陣列長度
arr_len=${#arr[@]}
#宣告一新陣列,放置取得的內容
temar=()
#宣告一臨時陣列,放置已取得過的數字
noar=()
#宣告目標取得數,設為隨機數 (亦等於由陣列取出rum個值)
declare -i rum=$RANDOM*$arr_len/32767
echo "Random select $rum object from arr"
#增加一個function,檢查隨機值是否已存在noar陣列中
check(){
for x in ${noar[@]}
do
if [ "$x" == "$rno" ]; then
rno=$RANDOM*$arr_len/32767
check
fi
done
}
#當取得個數尚未等於目標數時進入for迴圈
for ((i=0 ; i <$rum ; i++))
do
#宣告選取arr陣列中第rno個值,設為隨機數
declare -i rno=$RANDOM*$arr_len/32767
#呼叫function "check"
check
#找出要把rno放到noar中的哪裡,為原noar長度+1
declare -i rno_put=${#noar[@]}+1
# 將rno隨機數放置noar陣列中
noar[$rno_put]="$rno"
# temar 的第i個數字設為arr陣列中的第rno個
temar[$i]="${arr[$rno]}"
done
#印出所有temar內容
echo "=======temar: ${temar[@]}==========="