%20.png)
Dies ist mein Passwortgenerator. Er generiert 8 Zeichen und mischt sie. Aber ich muss die Länge dynamisch gestalten. Wie würde ich das machen? Die Ausgabe hätte also eine unterschiedliche Länge zwischen 8 und 16 Zeichen.
if [ $# -eq 0 ]; then
num=("0" "1" "2" "3" "4" "5" "7" "8" "9")
special=("@" "#" "$" "%" "*" "-" "+")
upper=(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)
lower=(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)
lower2=${#lower[*]} #${lower[$((RANDOM%lower2))]}
upper2=${#upper[*]} #${upper[$((RANDOM%upper2))]}
num2=${#num[*]} #${num[$((RANDOM%num2))]}
special2=${#special[*]} #${special[$((RANDOM%special2))]}
echo "${special[$((RANDOM%special2))]}${num[$((RANDOM%num2))]}${lower[$((RANDOM%lower2))]}${upper[$((RANDOM%upper2))]}${lower[$((RANDOM%lower2))]}${upper[$((RANDOM%upper2))]}${lower[$((RANDOM%lower2))]}${upper[$((RANDOM%upper2))]}" | fold -w 1 | shuf | tr -d '\n'
echo
fi
Antwort1
Satz
len=$((8+RANDOM%9))
und dann $len
Charaktere zu generieren, unter Verwendung eines Rahmens wie dem, den ich in meiner Antwort auf Ihre sehr eng verwandteSo generieren Sie in diesem Passwortgenerator nur ein SonderzeichenFrage,
word=
for ((i=0; i<len; i++))
do
thischar=(Generate one character by whatever logic you like)
word="$word$thischar"
done
echo "$word"
Ich überlasse es Ihnen, zu entscheiden, wie Sie die einzelnen Zeichen generieren, damit Sie eine Zeichengruppenverteilung nach Ihren Wünschen erhalten. Das geht über den Rahmen Ihrer Frage hinaus und würde dazu führen, dass Sie Ihre Anforderungen schreiben müssen (d. h. schreibenIhre Frage) für Sie.