【发布时间】:2015-03-11 19:03:05
【问题描述】:
我正在尝试生成具有特定要求的密码。 当我进入 while 循环以从数组中生成一个随机字符时,这很好,直到我为我的索引“$i”添加一个计数
使用以下代码:
#!/bin/bash
#SET ARRAY VALUES
all=( 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z )
echo
#SET COUNT VALUES TO 0
numc=0
lowc=0
upc=0
i=0
while true;
do
#GENERATE PASSWORD
phrase[$i]=${all[$RANDOM%62]}
#CHECK IF PASSWORD MEETS REQUIREMENTS
for ((n=0; n<10; n++))
do
if [ ${phrase[$i]} == ${all[$n]} ]
then
echo num ${all[$n]}
let "numc++"
let "i++"
fi
done
我收到错误“第 39 行:[: ==: 应为一元运算符”
但如果我删除 let "i++" 行,则没有错误。但是我需要增加我的索引才能退出循环并检查密码的最小长度
【问题讨论】:
-
您没有使用大多数密码存储应用程序或
pwqgen中的密码生成器是否有原因?这是作业吗? -
all=( {0..9} {a..z} {A..Z} ) -
是的,这是一个作业,所以我需要自己创建一个密码生成器
标签: arrays bash unary-operator