亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux??Shell中如何實現一個獲取任意位數的隨機密碼

發布時間:2021-05-21 14:02:17 來源:億速云 閱讀:178 作者:小新 欄目:開發技術

這篇文章主要介紹了Linux  Shell中如何實現一個獲取任意位數的隨機密碼,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

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"

什么是Linux系統

Linux是一種免費使用和自由傳播的類UNIX操作系統,是一個基于POSIX的多用戶、多任務、支持多線程和多CPU的操作系統,使用Linux能運行主要的Unix工具軟件、應用程序和網絡協議。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Linux  Shell中如何實現一個獲取任意位數的隨機密碼”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

盐边县| 长岭县| 天门市| 新巴尔虎左旗| 泽库县| 富裕县| 德昌县| 靖西县| 微山县| 沙河市| 咸阳市| 浮山县| 稻城县| 柳州市| 乌兰察布市| 堆龙德庆县| 贵溪市| 油尖旺区| 江西省| 昌吉市| 德州市| 米脂县| 巴彦淖尔市| 镇安县| 安西县| 临夏市| 大安市| 泰州市| 莱阳市| 洱源县| 天气| 泗洪县| 北安市| 菏泽市| 晋城| 枞阳县| 济源市| 通州市| 大港区| 桓仁| 九江县|