暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Shell 脚本案例【6】随机数

皮皮克克 2024-10-02
131

关注+星标,干货第一时间送达


日常开发中,随机数的使用,

经常能遇到。

比如,给客户或者某一实体,加唯一标识,

通常是时间戳,搭配随机字符,

生成一个30位,或者32位的字符串,

亦或是18位,或者15位的数字。

具体长度,就看各自的业务需求了。

在java中,我们常使用 Random() 类获取随机数,

python中,则使用 random 模块获取。

那么,linux中呢?


解决方案

演示工具:Centos7.9 + MobaXterm

linux 中获取随机数方法不少,

咱们来看个常用的方法。


通过系统变量 $RANDOM

[jack@jenkins shell-demo]$ echo $RANDOM


输出:


但是,系统变量 RANDOM 获得的随机数范围是:0 ~ 32767,

范围不大。

我们可以再增加一层加密,然后截取所需的长度即可,效果如下:

[jack@jenkins shell-demo]$ echo $RANDOM | md5sum | cut -c 1-18


输出:


这里获取的是随机字符串,如果想要随机数,则不用 md5sum。

用 cksum 就行,方法类似:


【扩展】

上面的 md5sum,是linux中计算和校验文件的工具。

比如一个文件前后不一致,md5sum是可以检测出来的,

比如:

  • 有 a.txt 文件,内容如下


  • 使用md5sum,生成md5文件

[jack@jenkins shell-demo]$ md5sum a.txt > a.txt.md5


结果:


  • 使用 md5sum,校验md5文件

[jack@jenkins shell-demo]$ md5sum -c a.txt.md5


结果:

  • 然后修改源文件 a.txt 的内容

  • 再使用md5校验

就会校验不通过了!

OK,这就是本期的内容了,下期再见!

文章转载自皮皮克克,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论