shell脚本--生成包含特殊字符的8位数随机密码

本文介绍了一个使用Shell脚本生成8位随机密码的方法。通过从包含大小写字母、数字及特殊字符的字符串中随机选取字符,形成安全的随机密码。文章还补充了字符串操作的知识,包括子串截取、子串替换、字符串初值处理以及字符串掐头去尾的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过字符串的截取,生成一个8位的随机密码

vim ge_passwd.sh
#!/bin/bash
string=qwertyuiopasdfghjklzxcvbnm\!\@\#\$\%\^\&\*QWERTYUIOPASDFGHJKLZXCVBNM1234567890   ## 特殊字符前的 "\" 为转义字符
for i in {1..8}  ##修改循环次数,可生成任意位数的密码
do
    num=$[RANDOM%70]
    x=${string:num:1}
    password=${password}$x
done
echo ${password}

####################补充知识####################

####子串截取的三种用法:
${变量名:起始位置:长度}       #起始位置从第 0 位开始,默认从第 0 位开始
expr substr "$变量名" 起始位置 长度      #起始位置从第 1 位开始
echo $变量名 | cut -b 起始位置-结束位置  #起始位置从第 1 位开始 (4-5两个数)

####子串替换的两种用法:
${变量名/old/new}      只替换第一个匹配结果
${变量名//old/new}     替换全部匹配结果

####字符串初值的处理:
 ${var:-word}    若变量var已存在且非Null,则返回 $var 的值;否则返回字串“word”,原变量var的值不变。

####字符串掐头去尾:
  从左向右,最短匹配删除:${变量名#*关键词}
  从左向右,最长匹配删除:${变量名##*关键词}
  从右向左,最短匹配删除:${变量名%关键词*}
  从右向左,最长匹配删除:${变量名%%关键词*}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值