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

詳解Linux  Shell 實(shí)現(xiàn)一個(gè)獲取任意位數(shù)的隨機(jī)密碼的腳本

 更新時(shí)間:2017年08月03日 09:09:07   作者:FungLeo  
這篇文章主要介紹了詳解Linux Shell 實(shí)現(xiàn)一個(gè)獲取任意位數(shù)的隨機(jī)密碼的腳本的相關(guān)資料,本文提供實(shí)現(xiàn)方法及實(shí)現(xiàn)代碼,需要的朋友可以參考下

Shell 命令行,實(shí)現(xiàn)一個(gè)獲取任意位數(shù)的隨機(jī)密碼的腳本

每次我們想要獲得一個(gè)密碼的時(shí)候都很頭疼,于是我之前自己用nodejs寫了一個(gè) Shell 腳本。這兩天在學(xué)習(xí) bash Shell 所以,想用同樣的邏輯實(shí)現(xiàn)一個(gè)獲取任意位數(shù)隨機(jī)密碼的腳本。

我成功了 :)

分析問題

我們假設(shè)我們需要的密碼是大小寫字母以及數(shù)字的組合,并且剔除掉 1,l,0,O,o 這些不便于認(rèn)知的字符。

然后隨機(jī)的讀取其中的字符,組合成一個(gè)我們需要的密碼,最后輸出。

理順了邏輯之后,我想到有下面的知識(shí)點(diǎn)是我之前不是很熟悉的。不過沒關(guān)系,善用搜索引擎,這些問題都能解決

  1. 任意位數(shù),所以需要接受傳參
  2. 如果沒有傳參,則要給一個(gè)默認(rèn)值
  3. 需要實(shí)現(xiàn)隨機(jī)數(shù)效果
  4. 字符串追加,這個(gè)倒是蠻簡(jiǎn)單的
  5. 獲取字符串中指定位數(shù)的字符
  6. 數(shù)字向上取整

實(shí)現(xiàn)代碼

最終代碼如下:

#!/bin/bash
# 如果得到參數(shù) 則將得到的參數(shù)作為密碼的位數(shù),否則指定密碼位數(shù)為8
if [ -n "$1" ]; then length=$1;
else length=8; fi

# 設(shè)定可以作為密碼的字符串
chars='abcdefghijkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ23456789'

# 獲取上面的字符串的長(zhǎng)度,其實(shí)可以直接數(shù)一下,這不是練一下 shell 嘛
charsLength=`echo $chars | wc -m | sed 's/^[ \t]*//g'`

# 初始的為空
pw=''

# 根據(jù)所需密碼長(zhǎng)度進(jìn)行循環(huán)
for ((i=0;i<$length;i++));do

 # 取得一個(gè)隨機(jī)數(shù)
 # $RANDOM 是獲取一個(gè)小于 32767 的隨機(jī)數(shù)
 # 所以除以 32767 就可以得到一個(gè) 0 - 1 之間的隨機(jī)小數(shù) 
 r=`echo $RANDOM/32767 | bc -l`

 # 根據(jù)隨機(jī)數(shù)*字符長(zhǎng)度取得一個(gè)數(shù)字
 num=`echo $r*$charsLength | bc`

 # 將取得數(shù)字向上取整,并在字符串中截取對(duì)應(yīng)位置的字符
 w=`echo $chars | cut -c$((${num//.*/+1}))`

 # 字符追加到 pw 這個(gè)變量
 pw=$pw$w
done

# 輸出我們想要的密碼
echo $pw

運(yùn)行一下,果然得到了我們想要的結(jié)果。

將這個(gè)命令作為一個(gè)系統(tǒng)命令,可以隨時(shí)執(zhí)行

  1. 我們?cè)?~目錄下面新建一個(gè) .bin 的文件夾
  2. 將 ~/.bin 設(shè)置為環(huán)境變量
  3. 然后將此腳本放到改文件夾下面,并命名為 getpass
  4. chmod +x getpass 添加可執(zhí)行權(quán)限

然后我們就可以隨時(shí)輸出這個(gè)命令,來(lái)得到我們想要的密碼了。

將 ~/.bin 設(shè)置為環(huán)境變量

cd ~
mkdir .bin
vim .bash_profile

在 .bash_profile 文件中添加

export PATH="$PATH:~/.bin"

其他不說(shuō)了,學(xué)習(xí) shell 的話,一些基本的命令應(yīng)該是沒有問題的。

以上腳本均在 mac 下測(cè)試通過,在 Linux 下可能會(huì)有稍許不同。

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

相關(guān)文章

  • 使用Bash腳本自動(dòng)化清理Nacos日志文件的實(shí)現(xiàn)方法

    使用Bash腳本自動(dòng)化清理Nacos日志文件的實(shí)現(xiàn)方法

    在現(xiàn)代的分布式系統(tǒng)中,Nacos作為服務(wù)發(fā)現(xiàn)、配置管理和動(dòng)態(tài)服務(wù)管理的核心組件,其日志文件的管理顯得尤為重要,隨著系統(tǒng)的運(yùn)行,日志文件會(huì)不斷累積,占用大量磁盤空間,本文將介紹如何通過一個(gè)簡(jiǎn)單的 Bash 腳本自動(dòng)化清理 Nacos 的日志文件,需要的朋友可以參考下
    2025-04-04
  • crontab每10秒執(zhí)行一次的實(shí)現(xiàn)方法

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

    下面小編就為大家?guī)?lái)一篇crontab每10秒執(zhí)行一次的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-04-04
  • Shell腳本實(shí)現(xiàn)批量替換文件內(nèi)容

    Shell腳本實(shí)現(xiàn)批量替換文件內(nèi)容

    這篇文章主要介紹了Shell腳本實(shí)現(xiàn)批量替換文件內(nèi)容,本文主要實(shí)現(xiàn)批量修改一個(gè)備份腳本里的備份路徑,其它批量替換也可以修改使用,需要的朋友可以參考下
    2014-12-12
  • SVN限制message字符個(gè)數(shù)及格式的實(shí)例

    SVN限制message字符個(gè)數(shù)及格式的實(shí)例

    下面小編就為大家?guī)?lái)一篇SVN限制message字符個(gè)數(shù)及格式的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-03-03
  • Linux 刪除和替換文件中某一行的方法【推薦】

    Linux 刪除和替換文件中某一行的方法【推薦】

    這篇文章給大家介紹了Linux 刪除和替換文件中某一行的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-05-05
  • ubuntu下常用apt命令介紹

    ubuntu下常用apt命令介紹

    這篇文章介紹了ubuntu的常用apt命令,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Linux換行符的使用方法詳解

    Linux換行符的使用方法詳解

    本文介紹了Linux中常用的換行符LF及其在文件中的表示,展示了如何使用sed命令替換換行符,并列舉了與換行符處理相關(guān)的Linux命令,通過代碼講解的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • 詳解Sed命令的用法與正則表達(dá)式元字符

    詳解Sed命令的用法與正則表達(dá)式元字符

    sed是一種流編輯器,它是文本處理中非常有用的工具,能夠完美的配合正則表達(dá)式使用,功能不同凡響。這篇文章主要介紹了Sed命令使用與正則表達(dá)式元字符,需要的朋友可以參考下
    2017-12-12
  • Shell中的for和while循環(huán)詳細(xì)總結(jié)

    Shell中的for和while循環(huán)詳細(xì)總結(jié)

    這篇文章主要介紹了Shell中的for和while循環(huán)詳細(xì)總結(jié),本文講解了for循環(huán)的數(shù)字段形式、詳細(xì)列出、對(duì)文件進(jìn)行循環(huán),while循環(huán)的三種使用場(chǎng)合等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • Shell腳本實(shí)現(xiàn)遞歸刪除空文件夾

    Shell腳本實(shí)現(xiàn)遞歸刪除空文件夾

    這篇文章主要介紹了Shell腳本實(shí)現(xiàn)遞歸刪除空文件夾,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-02-02

最新評(píng)論

沂南县| 改则县| 南汇区| 正定县| 汉中市| 启东市| 祁连县| 西华县| 乐昌市| 同德县| 扎赉特旗| 哈巴河县| 吉木乃县| 通化市| 聊城市| 临颍县| 通海县| 泗阳县| 惠安县| 临武县| 紫金县| 滦平县| 前郭尔| 库车县| 凌源市| 丰台区| 曲阳县| 阿拉善左旗| 花垣县| 河南省| 张北县| 宣化县| 凯里市| 章丘市| 怀安县| 子长县| 宿州市| 西藏| 封开县| 资阳市| 崇明县|