Bash
密碼生成器不工作 OS X
我正在使用 RANDOM 函式使用 4 個數組(小寫、大寫、符號和數字)創建密碼生成器。基本上我會生成一個隨機數,然後將其應用於每個數組。
這是我的腳本。
LOWER[0]="a" LOWER[1]="b" LOWER[2]="c" LOWER[3]="d" LOWER[4]="e" LOWER[5]="f" LOWER[6]="g" LOWER[7]="h" LOWER[8]="i" LOWER[9]="j" LOWER[10]="k" LOWER[11]="l" LOWER[12]="m" LOWER[13]="n" LOWER[14]="o" LOWER[15]="p" LOWER[16]="q" LOWER[17]="r" LOWER[18]="s" LOWER[19]="t" LOWER[20]="u" LOWER[21]="v" LOWER[22]="w" LOWER[23]="x" LOWER[24]="y" LOWER[25]="z" UPPER[0]="A" UPPER[1]="B" UPPER[2]="C" UPPER[3]="D" UPPER[4]="E" UPPER[5]="F" UPPER[6]="G" UPPER[7]="H" UPPER[8]="I" UPPER[9]="J" UPPER[10]="K" UPPER[11]="L" UPPER[12]="M" UPPER[13]="N" UPPER[14]="O" UPPER[15]="P" UPPER[16]="Q" UPPER[17]="R" UPPER[18]="S" UPPER[19]="T" UPPER[20]="U" UPPER[21]="V" UPPER[22]="W" UPPER[23]="X" UPPER[24]="Y" UPPER[25]="Z" SYMBOL[0]="!" SYMBOL[1]="@" SYMBOL[2]="#" SYMBOL[3]="$" SYMBOL[4]="%" SYMBOL[5]="^" SYMBOL[6]="&" SYMBOL[7]="*" SYMBOL[8]="(" SYMBOL[9]=")" NUMBER[0]="1" NUMBER[1]="2" NUMBER[2]="3" NUMBER[3]="4" NUMBER[4]="5" NUMBER[5]="6" NUMBER[6]="7" NUMBER[7]="8" NUMBER[8]="9" NUMBER[9]="0" for i in {1..5}; do for j in {1..3}; do let RANDLOWER=$RANDOM%26 let RANDUPPER=$RANDOM%26 let RANDSYMBOL=$RANDOM%10 let RANDNUMBER=$RANDOM%10 echo -n ${LOWER[$RANDLOWER]} echo -n ${UPPER[$RANDUPPER]} echo -n ${SYMBOL[$RANDSYMBOL]} echo -n ${NUMBER[$RANDNUMBER]} done >> passwords.txt echo >> passwords.txt done
但是,當它生成並輸出到時,
passwords.txt
它將顯示腳本執行的所有目錄的列表。例如,我在
~
目錄中執行此腳本,它將顯示所有目錄。密碼.txt 輸出
bRApplications Desktop Documents Downloads Library Movies Music Pictures Public passwords.txt9vN$3qC(1 sB$1tH#3uV&6 tK#3hK#2bE! sM^4cP%5sC^3 sB&6lG)6lJ!6
預期產出
sC@1zH&6wO$2 sQ@0vC@2hT%1 rL&7kY%5gY#1 wI#9hC&3oA&4 cZ%6uA!6xM(3
我在這個腳本中遺漏了什麼,為什麼它會給我這個輸出?
您可以通過對腳本進行以下編輯來解決您的問題:
echo -n ${LOWER[$RANDLOWER]}${UPPER[$RANDUPPER]}${SYMBOL[$RANDSYMBOL]}${NUMBER[$RANDNUMBER]} done >> passwords.txt echo >> passwords.txt done
對我來說,它按預期提供了範例輸出:
$ cat passwords.txt dI)9oF*5mG(1 pO&9rL%7cO^9 vB#8zF^4uN)3 hW(5dA%0sT^4 iQ*2hG*2gV!7