Linux shell script 產生隨機亂數指令用法範例

本篇介紹 Linux shell script 產生隨機亂數指令用法範例,只要在 command line 或 shell script 裡印出 $RANDOM 變數就可以了,範例如下,以下指令適用在 linux,也適用於 macOS,

在 shell 中印出 $RANDOM 變數的指令如下,$RANDOM 變數它是一個介於 0~32767 間的亂數,

1
$ echo $RANDOM

如果要 Linux shell 產生 0~99 之間的隨機亂數的話,可以改這樣,

1
$ echo $(($RANDOM % 100))

如果要 Linux shell 產生 0~100 之間的隨機亂數的話,可以改這樣,

1
$ echo $(($RANDOM % 101))

如果要 Linux shell 產生 1~100 之間的隨機亂數的話,可以改這樣,

1
$ echo $(($RANDOM % 100 + 1))

Linux shell 產生 3 位數的隨機亂數

當需要生成 3 位數的隨機整數時(不包含 0-99),你可以使用下列方式以確保結果在 100 到 999 的範圍內,這將產生一個在 100 到 999 之間的隨機 3 位整數。

1
$ echo $(($RANDOM % 900 + 100))

Linux shell 產生 32767 以上的亂數

如果要產生 32767 以上的亂數呢?如果你需要產生一個大於 32767 的隨機亂數,你可以使用 /dev/urandom/dev/urandom 這個裝置可以產生更大範圍的隨機亂數。你可以使用 dd 指令來從 /dev/urandom 讀取隨機資料,指令如下,

1
$ echo $(od -An -N2 -i /dev/urandom | awk '{print $1}')

Linux shell 產生 6 位數的隨機亂數

如果要產生 6 位數的隨機亂數呢?要產生一個6位數的隨機整數,你可以使用 shuf 指令來產生一個 6 位數的隨機整數,範圍從 100000 到 999999。你可以根據需要自訂範圍,確保它是一個6位數,範例如下,

1
$ echo $(shuf -i 100000-999999 -n 1)

在 shell script 中可以這樣寫,

1
2
random_number=$(shuf -i 100000-999999 -n 1)
echo $random_number

macOS 沒有 shuf 指令,可以改用 awk 的方式,但需要結合其他指令,如下範例,
這範例是使用 awk 來產生一個 6 位數的隨機整數,範圍從 100000 到 999999。你可以根據需要自訂 minmax 的值來產生不同範圍的隨機亂數。

1
$ awk -v min=100000 -v max=999999 'BEGIN{srand(); print int(min+rand()*(max-min+1))}'

以上就是 Linux shell script 產生隨機亂數指令用法範例介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!

其它相關文章推薦
Linux 常用指令教學懶人包