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

 

posted @ 2023-09-13 14:30  Leonardo-li  阅读(352)  评论(0编辑  收藏  举报