Shell随机数及字符串翻转

完美世界运维开发的一道笔试题,大概意思是0到9中随机取6个数,然后翻转输出。之前写过一个随机生成root密码的脚本,无奈时间长了忘记了。这里总结一下shell中随机数的生成方法。

时间戳

  • date +%s 获得时间戳,当前到:1970-01-01 00:00:00 相隔的秒数。如果用它做随机数,相同一秒的数据是一样的。在做循环处理,多线程里面基本不能满足要求了。
  • date +%N 获得当前时间的纳秒数据,精确到亿分之一秒。这个相当精确了,就算在多cpu,大量循环里面,同一秒里面,也很难出现相同结果,不过不同时间里面还会有大量重复碰撞
  • date +%s%N 这个可以说比较完美了,加入了时间戳,又加上了纳秒

内部系统变量($RANDOM)

连续2次访问,结果不一样,这个数据是一个小于或等于5位的整数

系统内部唯一数据生成随机数(/dev/random,urandom)

读取linux的uuid码

字符串翻转

代码实现

运行结果

参考资料

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注