var=$RANDOM
創建隨機數,但我怎麼能指定一個範圍之間0至12例如?外殼腳本隨機數的生成
回答
如果你已經有你的隨機數,你可以說
var=$RANDOM
var=$[ $var % 13 ]
從0..12
得到的數字。
編輯: 如果你想從$x
產生號碼$y
,你可以很容易地修改此:
var=$[ $x + $var % ($y + 1 - $x) ]
在這裏你去
echo $(($RANDOM % 12))
我希望這有助於。
此文件具有使用這種格式範圍和地板可能有幫助的一些例子: http://tldp.org/LDP/abs/html/randomvar.html
0和12之間(包括):
echo $((RANDOM % 13))
編輯:請注意,此方法不嚴格正確。由於32768不是13的倍數,因此生成0到8的機率要比其餘數字(9到12)略高(0.04%)。
這裏是外殼的功能,應該給一個平衡輸出:
randomNumber()
{
top=32768-$((32768%($1+1)))
while true; do
r=$RANDOM
[ r -lt $top ] && break
done
echo $((r%$1))
}
當然,更好的東西應該被設計如果範圍的高值利用現有的SHUF超過32767
替代Linux操作系統(或者coreutils的是精確的):
var=$(shuf -i0-12 -n1)
呃。那麼你的腳本是不可移植的。 – 2016-07-08 00:26:26
在FreeBSD和其他可能的BSD系統可以使用:
jot -r 3 0 12
這將創建3
從0到12的隨機數,包含性。
另一種選擇,如果你只需要每個腳本一個隨機數,你可以這樣做:
var=$(($$ % 13))
這將使用腳本作爲種子,應該大部分隨機的PID。範圍將再次從0到12.
Mac OS X也不錯。但不是Linux,所以這不是便攜式的。 – 2016-07-08 00:28:14
- 1. 外殼腳本生成地圖
- 2. 從外殼腳本函數
- 3. 生成隨機數:計算隨機生成的x次數
- 4. 外殼腳本UI
- 5. 隨機數生成
- 6. 生成隨機數
- 7. 生成隨機數
- 8. 生成隨機數
- 9. 生成隨機數
- 10. 隨機數生成
- 11. 腳本從數組中隨機生成圖片和文本
- 12. 隨機數腳本訪問生產非隨機數VBA
- 13. 本機Prolog外殼
- 14. 隨機數生成機制
- 15. 隨機數生成器幫助不生成隨機數 - C
- 16. 隨機文本生成器
- 17. 隨機樣本生成器
- 18. 帶外殼腳本的RAILS_ROOT
- 19. 簡單的外殼腳本
- 20. 生成隨機數的Array
- 21. Cuda的隨機數生成
- 22. 隨機數的生成
- 23. 隨機()不生成隨機數
- 24. 從隨機長生成隨機數
- 25. 基本程序生成隨機數Python
- 26. 隨機樣本數據集生成器
- 27. 腳本中的隨機數
- 28. 帶外殼腳本的數字產品
- 29. 如何從matlab中的隨機數生成器生成樣本?
- 30. iMacro爲twitter生成隨機文本或隨機數
糾正︰$(($ RANDOM%13)) – 2011-05-13 13:56:05
是的,同意,謝謝。我很高興能先回答一個簡單的問題,但我沒有仔細檢查!感謝2票(無論你是誰);-) – shellter 2011-05-13 14:03:23
注意內部$是可選的,因爲發現的非數字字符串不能有變量名稱。 – jlliagre 2011-05-13 14:45:20