shell-random

Posted on Posted in bash
Tips: 本文创建于2013年11月8日,已超过 2 年,内容或图片可能已经失效!

有时候弄一个复杂的密码,随机字符串就很好用。

  1. #!/bin/bash  
  2. MATRIX="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~!@#$%^&*()_+="  
  3. LENGTH="12"  
  4. while [ "${n:=1}" -le "$LENGTH" ]  
  5. do  
  6. PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}"  
  7. let n+=1  
  8. done  
  9. echo "$PASS"  
  10. exit 0  

执行命令

  1. bash filename  

语法解释

# ==> ${#MATRIX} 返回变量MATRIX的长度.
# ==> $(($RANDOM%${#MATRIX})) 返回一个随机数,这个随机数的值是从1到变量MATRIX的长度之间的一个数.
# ==> ${MATRIX:$(($RANDOM%${#MATRIX})):1} 根据上一步的随机数,这一步获取变量MATRIX的一个定义位置,步长为1,即从变量MATRIX中随机获取了1个字符。
参考 {var:pos:len} 对一个变量定义位置和步长.
# ==> $PASS${MATRIX:$(($RANDOM%${#MATRIX})):1} 这一步就是字符拼接($PASS + 1个字符),默认$PASS没有定义过就位空。

 

还有一个linux自带的生成密码命令

mkpasswd

如果没有

apt-get install -y whois
» 转载请注明来源:若我若鱼 » shell-random

Leave a Reply

Your email address will not be published. Required fields are marked *

20 + 6 =