亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

mimvp@ubuntu:~$ echo $RANDOM
17617

$RANDOM 的范圍是 [0, 32767]

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

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

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

2. 使用date +%s%N

例:生成1~50的隨機數(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 存儲著系統(tǒng)當前運行環(huán)境的實時數(shù)據(jù),是阻塞的隨機數(shù)發(fā)生器,讀取有時需要等待。

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

例:使用/dev/urandom生成100~500的隨機數(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 全稱是通用唯一識別碼,格式包含32個16進制數(shù)字,以'-‘連接號分為5段。形式為8-4-4-4-12 的32個字符。

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

例:使用linux uuid 生成100~500隨機數(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. 生成隨機字符串

例:生成10位隨機字符串

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

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

相關文章

  • Shell腳本函數(shù)傳遞參數(shù)的實現(xiàn)方法

    Shell腳本函數(shù)傳遞參數(shù)的實現(xiàn)方法

    本文主要介紹了Shell腳本函數(shù)傳遞參數(shù)的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • crontab每10秒執(zhí)行一次的實現(xiàn)方法

    crontab每10秒執(zhí)行一次的實現(xiàn)方法

    下面小編就為大家?guī)硪黄猚rontab每10秒執(zhí)行一次的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • 詳談Linux netstat命令(高級面試必備)

    詳談Linux netstat命令(高級面試必備)

    下面小編就為大家?guī)硪黄斦凩inux netstat命令(高級面試必備)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Shell腳本命令行批處理bash?sh?cmd?bat函數(shù)極簡學法

    Shell腳本命令行批處理bash?sh?cmd?bat函數(shù)極簡學法

    這篇文章主要為大家介紹了Shell腳本中文英文多語言國際化和命令行批處理(bash?sh?cmd?bat)中定義函數(shù)的簡單寫法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2023-09-09
  • Shell腳本避免重復執(zhí)行的方法

    Shell腳本避免重復執(zhí)行的方法

    這篇文章主要介紹了Shell腳本避免重復執(zhí)行的方法的,本文給出的代碼只要放在需要執(zhí)行的腳本頭部即可避免重復執(zhí)行,非常方便實用,需要的朋友可以參考下
    2015-01-01
  • 使用bash shell刪除目錄中的特定文件的3種方法

    使用bash shell刪除目錄中的特定文件的3種方法

    這篇文章主要介紹了使用bash shell刪除目錄中的特定文件的3種方法,分別為擴展模式匹配符、GLOBIGNORE 變量和find 命令,需要的朋友可以參考下
    2014-06-06
  • 在Shell命令行處理JSON數(shù)據(jù)的方法

    在Shell命令行處理JSON數(shù)據(jù)的方法

    這篇文章主要介紹了在Shell命令行處理JSON數(shù)據(jù)的方法,使用jq工具實現(xiàn),需要的朋友可以參考下
    2014-03-03
  • linux禁止普通用戶切換至root用戶的實例講解

    linux禁止普通用戶切換至root用戶的實例講解

    今天小編就為大家分享一篇linux禁止普通用戶切換至root用戶的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • bash shell和dash shell的區(qū)別詳解

    bash shell和dash shell的區(qū)別詳解

    本文主要介紹了bash shell和dash shell的區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • Linux壓縮和解壓命令大全之tar、gzip和zip詳細教程

    Linux壓縮和解壓命令大全之tar、gzip和zip詳細教程

    本文介紹了常用的壓縮和解壓命令,包括tar、gzip和zip,通過使用這些命令,我們可以方便地對文件和目錄進行壓縮和解壓操作,從而節(jié)省存儲空間和提高傳輸效率,需要的朋友可以參考下
    2023-09-09

最新評論