由C语言做随机数想到的,shell里做随机数的方式怎么办?
1 用$RANDOM环境变量
这个是bash自带的, 简单
1 | [root@localhost tmp]# echo $RANDOM |
2 用date命令
date +%s是到Epoch的秒数,同一秒内执行就出现重复值了,差了点意思
date +%N是纳秒,这个可以。
1 | [root@localhost tmp]# for((i=0;i<10;i++)) do date +%s;done |
3 用系统目录下提供的random
也就是/dev/urandom,是持续输出,所以用head -n限制一下。还要配合cksum才能生成数字。
1 | [root@localhost tmp]# head -n 1 /dev/urandom |
4 用系统提供的uuid
这个和上一种情况类似,目录的位置是/proc/sys/kernel/random/uuid, 每次产生一条所以可以用cat
1 | [root@localhost tmp]# cat /proc/sys/kernel/random/uuid |