Shell

生成特定範圍內的隨機數

  • October 22, 2021

Google搜尋了一下後,我找不到一種簡單的方法來使用 shell 命令生成包含在特定範圍內的隨機十進制整數,即在最小值和最大值之間。

我讀到了/dev/random,/dev/urandom$RANDOM,但是這些都不能滿足我的需要。

是否有另一個有用的命令,或者使用以前數據的方法?

在 POSIX 工具箱中,您可以使用awk

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

不要其用作生成密碼或秘密數據的來源,例如,與大多數awk實現一樣,可以根據命令執行的時間輕鬆猜出該數字。

對於許多awk實現,該命令在同一秒內執行兩次通常會給您相同的輸出。

shuf您可以從 GNU coreutils嘗試:

shuf -i 1-100 -n 1

引用自:https://unix.stackexchange.com/questions/140750