婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 詳解Linux  Shell 實現一個獲取任意位數的隨機密碼的腳本

詳解Linux  Shell 實現一個獲取任意位數的隨機密碼的腳本

熱門標簽:春運地圖標注app 昆明電銷機器人價格 地圖標注人員分布 上海機器人外呼系統哪家好 益陽400電話申請辦理流程 梧州防封電銷卡 怎么用百度地圖標注坐標 江西全自動外呼系統報價 400的電話一般從哪里辦理

Shell 命令行,實現一個獲取任意位數的隨機密碼的腳本

每次我們想要獲得一個密碼的時候都很頭疼,于是我之前自己用nodejs寫了一個 Shell 腳本。這兩天在學習 bash Shell 所以,想用同樣的邏輯實現一個獲取任意位數隨機密碼的腳本。

我成功了 :)

分析問題

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

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

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

  1. 任意位數,所以需要接受傳參
  2. 如果沒有傳參,則要給一個默認值
  3. 需要實現隨機數效果
  4. 字符串追加,這個倒是蠻簡單的
  5. 獲取字符串中指定位數的字符
  6. 數字向上取整

實現代碼

最終代碼如下:

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

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

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

# 初始的為空
pw=''

# 根據所需密碼長度進行循環
for ((i=0;i$length;i++));do

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

 # 根據隨機數*字符長度取得一個數字
 num=`echo $r*$charsLength | bc`

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

 # 字符追加到 pw 這個變量
 pw=$pw$w
done

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

運行一下,果然得到了我們想要的結果。

將這個命令作為一個系統命令,可以隨時執行

  1. 我們在 ~目錄下面新建一個 .bin 的文件夾
  2. 將 ~/.bin 設置為環境變量
  3. 然后將此腳本放到改文件夾下面,并命名為 getpass
  4. chmod +x getpass 添加可執行權限

然后我們就可以隨時輸出這個命令,來得到我們想要的密碼了。

將 ~/.bin 設置為環境變量

cd ~
mkdir .bin
vim .bash_profile

在 .bash_profile 文件中添加

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

其他不說了,學習 shell 的話,一些基本的命令應該是沒有問題的。

以上腳本均在 mac 下測試通過,在 Linux 下可能會有稍許不同。

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

您可能感興趣的文章:
  • Shell創建用戶并生成隨機密碼腳本分享
  • PowerShell生成隨機密碼的方法
  • Shell腳本生成隨機密碼的若干種可能

標簽:新疆 惠州 九江 北京 懷化 亳州 贛州 河南

巨人網絡通訊聲明:本文標題《詳解Linux  Shell 實現一個獲取任意位數的隨機密碼的腳本》,本文關鍵詞  詳解,Linux,amp,nbsp,Shell,實現,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解Linux  Shell 實現一個獲取任意位數的隨機密碼的腳本》相關的同類信息!
  • 本頁收集關于詳解Linux  Shell 實現一個獲取任意位數的隨機密碼的腳本的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 公主岭市| 高平市| 延安市| 马山县| 睢宁县| 新闻| 阳泉市| 威宁| 庐江县| 南雄市| 盘锦市| 靖安县| 龙陵县| 观塘区| 台东市| 浦东新区| 科尔| 长泰县| 怀柔区| 隆化县| 崇文区| 秦皇岛市| 成都市| 滕州市| 东至县| 云龙县| 团风县| 中牟县| 长子县| 寻甸| 安远县| 连城县| 张家口市| 涡阳县| 广元市| 尚义县| 金溪县| 洪湖市| 揭东县| 麻江县| 灵山县|