最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

shell 生成隨機(jī)數(shù)的實(shí)現(xiàn)方法總結(jié)

 更新時(shí)間:2017年09月29日 10:27:39   作者:陽光島主  
這篇文章主要介紹了 shell 生成隨機(jī)數(shù)的實(shí)現(xiàn)方法總結(jié)的相關(guān)資料,希望通過本能幫助到大家,讓大家徹底掌握這幾種隨機(jī)數(shù)的方法,需要的朋友可以參考下

 shell 生成隨機(jī)數(shù)的實(shí)現(xiàn)方法總結(jié)

1. 使用系統(tǒng)的 $RANDOM 變量

mimvp@ubuntu:~$ echo $RANDOM
17617

$RANDOM 的范圍是 [0, 32767]

如需要生成超過32767的隨機(jī)數(shù),可以用以下方法實(shí)現(xiàn)。

例:生成400000~500000的隨機(jī)數(shù)

#!/bin/bash
 
function rand(){
  min=$1
  max=$(($2-$min+1))
  num=$(($RANDOM+1000000000)) #增加一個(gè)10位的數(shù)再求余
  echo $(($num%$max+$min))
}
 
rnd=$(rand 400000 500000)
echo $rnd
 
exit 0

2. 使用date +%s%N

例:生成1~50的隨機(jī)數(shù)

#!/bin/bash
 
function rand(){
  min=$1
  max=$(($2-$min+1))
  num=$(date +%s%N)
  echo $(($num%$max+$min))
}
 
rnd=$(rand 1 50)
echo $rnd
 
exit 0

3. 使用/dev/random 和 /dev/urandom

/dev/random 存儲(chǔ)著系統(tǒng)當(dāng)前運(yùn)行環(huán)境的實(shí)時(shí)數(shù)據(jù),是阻塞的隨機(jī)數(shù)發(fā)生器,讀取有時(shí)需要等待。

/dev/urandom 非阻塞隨機(jī)數(shù)發(fā)生器,讀取操作不會(huì)產(chǎn)生阻塞。

例:使用/dev/urandom生成100~500的隨機(jī)數(shù),使用urandom避免阻塞。

#!/bin/bash
 
function rand(){
  min=$1
  max=$(($2-$min+1))
  num=$(cat /dev/urandom | head -n 10 | cksum | awk -F ' ' '{print $1}')
  echo $(($num%$max+$min))
}
 
rnd=$(rand 100 500)
echo $rnd
 
exit 0
 

4. 使用 linux uuid

uuid 全稱是通用唯一識(shí)別碼,格式包含32個(gè)16進(jìn)制數(shù)字,以'-‘連接號(hào)分為5段。形式為8-4-4-4-12 的32個(gè)字符。

mimvp@ubuntu:~/shell$ cat /proc/sys/kernel/random/uuid
fd496199-372a-403e-8ec9-bf4c52cbd9cd

例:使用linux uuid 生成100~500隨機(jī)數(shù)

#!/bin/bash
 
function rand(){
  min=$1
  max=$(($2-$min+1))
  num=$(cat /proc/sys/kernel/random/uuid | cksum | awk -F ' ' '{print $1}')
  echo $(($num%$max+$min))
}
 
rnd=$(rand 100 500)
echo $rnd
 
exit 0
 

5. 生成隨機(jī)字符串

例:生成10位隨機(jī)字符串

#使用date 生成隨機(jī)字符串
date +%s%N | md5sum | head -c 10
 
#使用 /dev/urandom 生成隨機(jī)字符串
cat /dev/urandom | head -n 10 | md5sum | head -c 10

如有疑問請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • shell版Nginx日志蜘蛛爬取查看腳本

    shell版Nginx日志蜘蛛爬取查看腳本

    這篇文章主要介紹了shell版Nginx日志蜘蛛爬取查看腳本的相關(guān)資料,需要的朋友可以參考下
    2015-03-03
  • Linux IO的水平觸發(fā)和邊緣觸發(fā)的區(qū)別

    Linux IO的水平觸發(fā)和邊緣觸發(fā)的區(qū)別

    這篇文章主要介紹了Linux IO的水平觸發(fā)和邊緣觸發(fā)的區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • shell腳本根據(jù)進(jìn)程查找指定容器的方法

    shell腳本根據(jù)進(jìn)程查找指定容器的方法

    這篇文章主要介紹了shell腳本根據(jù)進(jìn)程查找指定容器的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • linux 下獲取當(dāng)前工作路徑的實(shí)例

    linux 下獲取當(dāng)前工作路徑的實(shí)例

    今天小編就為大家分享一篇linux 下獲取當(dāng)前工作路徑的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • linux批量備份服務(wù)器配置文件和目錄的腳本

    linux批量備份服務(wù)器配置文件和目錄的腳本

    這篇文章主要介紹了linux下批量備份服務(wù)器配置文件和目錄的方法,需要的朋友可以參考下
    2013-08-08
  • Shell中獲取昨天和多天前日期的示例代碼

    Shell中獲取昨天和多天前日期的示例代碼

    本文主要介紹了Shell中獲取昨天和多天前日期的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • Linux命令每天必學(xué)之 useradd/adduser 新增用戶

    Linux命令每天必學(xué)之 useradd/adduser 新增用戶

    Linux下useradd或adduser命令用來建立用戶帳號(hào)和創(chuàng)建用戶的起始目錄,使用權(quán)限是超級(jí)用戶。接下來通過本文給大家介紹每天必學(xué)Linux命令之 useradd/adduser 新增用戶的相關(guān)知識(shí),需要的朋友參考下吧
    2018-10-10
  • 使用shell來發(fā)tcp包的方法

    使用shell來發(fā)tcp包的方法

    今天小編就為大家分享一篇關(guān)于使用shell來發(fā)tcp包的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • Apache服務(wù)器的安裝步驟(圖文教程)

    Apache服務(wù)器的安裝步驟(圖文教程)

    下面小編就為大家?guī)硪黄狝pache服務(wù)器的安裝步驟(圖文教程)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • shift妙用之解決shell編程中的入?yún)栴}

    shift妙用之解決shell編程中的入?yún)栴}

    shell編程經(jīng)常會(huì)遇到參數(shù)個(gè)數(shù)不定的這種情況,這種情況怎么處理呢?shift就要閃亮登場了
    2013-08-08

最新評(píng)論

墨玉县| 廉江市| 荣成市| 鄱阳县| 信宜市| 和顺县| 丽江市| 平利县| 黄山市| 余庆县| 杨浦区| 岚皋县| 察哈| 卢氏县| 奎屯市| 深州市| 从化市| 安陆市| 玉环县| 光泽县| 阳城县| 庆安县| 长汀县| 荃湾区| 麟游县| 永兴县| 永定县| 左权县| 荆州市| 南投县| 江源县| 海淀区| 比如县| 乌拉特前旗| 阿瓦提县| 军事| 余干县| 富宁县| 沽源县| 绥宁县| 留坝县|