#!/bin/bash # Don't forget to add alias in .bash_aliases # alias pass='~/_initlinux/scripts/pass.sh' pass() { local digits=(2 3 4 5 6 7 8 9) local upper=(A B C D E F G H J K L M N P Q R S T U V W X Y Z) local lower=(a b c d e f g h j k m n p q r s t u v w x y z) local password="" local group_count=5 for ((i = 0; i < group_count; i++)); do local block=() # Добавить 2 цифры for ((d = 0; d < 2; d++)); do block+=( "${digits[$RANDOM % ${#digits[@]}]}" ) done # Добавить 1 заглавную букву block+=( "${upper[$RANDOM % ${#upper[@]}]}" ) # Добавить 1 строчную букву block+=( "${lower[$RANDOM % ${#lower[@]}]}" ) # Перемешать local group=$(printf "%s\n" "${block[@]}" | shuf | tr -d '\n') # Добавить в пароль (с дефисом между блоками, кроме последнего) if (( i < group_count - 1 )); then password+="$group-" else password+="$group" fi done echo "$password" } pass