declare -a arr #聲明arr為數組
arr=(`seq 4 9 | awk 'BEGIN{srand();ORS=" "} {b[rand()]=$0} END{for(x in b) print b[x]}'`)
echo ${arr[*]} #打印數組array的所有元素
exit 0
說明:
生成[4,9]範圍內不重復的隨機整數,並保存到數組arr中。
seq 4 9 用於生成4~9的整數序列(包含邊界值4和9)。
awk中的rand() 函數用於隨機產生壹個0到1之間的小數值(保留小數點後6位)。
由於rand()只生成壹次隨機數,要使用srand() 函數使隨機數滾動生成(括號裏留空即默認采用當前時間作為隨機計數器的種子)。這樣以秒為間隔,隨機數就能滾動隨機生成了。
限制:
由於以秒為間隔,所以如果快速連續運行兩次腳本(1s內),妳會發現生成的隨機數還是壹樣的。