Shell
生成特定範圍內的隨機數
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