生成随机数和随机字符串

随机数字

bash提供了一个特殊的$RANDOM变量(在ksh中也支持),是随机选择032767之间的一个整数。简单的方法就是

echo $RANDOM

如果希望上述生成的数字限制在一个给定范围,可以采用取模方式,例如,以下返回数字是0~9之间随机:

echo $(($RANDOM % 10))

另外一种方法是采用/dev/random/dev/urandom设备接口通过内核来随机产生数字:

od -vAn -N4 -tu4 < /dev/urandom

或者

od -An -N2 -i /dev/random

od - dump files in octal and other formats

随机字符串

随机字符串的方法是利用了前面生成随机数字的方法结合md5sum工具,将随机数字的md5计算出来(也就是随机的字符串了)

echo $RANDOM | md5sum

甚至可以再随机一些

echo $RANDOM | md5sum | md5sum

如果要截取指定长度(举例9位)

echo $RANDOM | md5sum | cut -c 1-9

参考

Last updated