通过字符串的截取,生成一个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的值不变。
####字符串掐头去尾:
从左向右,最短匹配删除:${变量名#*关键词}
从左向右,最长匹配删除:${变量名##*关键词}
从右向左,最短匹配删除:${变量名%关键词*}
从右向左,最长匹配删除:${变量名%%关键词*}