shell脚本生成随机密码
1.创建generate_password.sh脚本
2.编写内容
#!/bin/bash # 默认密码长度 length=12 # 默认包含大小写字母、数字和特殊字符 characters="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_\-+=<>?" # 生成随机密码 generate_password() { local password=$(head /dev/urandom | tr -dc "$characters" | head -c"$length") echo "$password" } # 检查密码是否以字母开头,如果不是则重新生成密码 generate_valid_password() { local password while true; do password=$(generate_password) if [[ $password =~ ^[A-Za-z] ]]; then break fi done echo "$password" } # 处理命令行参数 while getopts ":l:" opt; do case $opt in l) length="$OPTARG" ;; \?) echo "无效的选项: -$OPTARG" >&2 exit 1 ;; :) echo "选项 -$OPTARG 需要参数." >&2 exit 1 ;; esac done # 生成密码 password=$(generate_valid_password) # 输出密码 echo "生成的密码: $password"
3.执行方式
./generate_password.sh -l 16 参数:-l 指定密码长度,默认是12