#!/bin/bash for (( num=1;num<=30;num=num+1)) #生成密码个数 do for (( a=1;a<=20;a=a+1 )) #生成密码位数 do i=74 aa=$(awk "BEGIN{srand($RANDOM); print 48+int($i*rand())}") #随机生成数字 if [ $aa -lt 57 -o $aa -gt 97 ] then #echo $aa | awk '{printf("%c\n",$1)}' echo -n "$(echo $aa | awk '{printf("%c\n",$1)}')" #将数字进行ASCLL转换 else a=$a-1 fi done echo done 首先明确几点: 1.0-9的ASCII码为48-57 2.a-z的ASCII码为97-122 3.A-Z的ASCII码为65-90 4.随机生成的数字,48为下限,$i+48为上限 其次明确一下,php中可以使用chr把ASCII码转换成普通字符