read /dev/urandom 3
上述方法不起作用..我如何从/dev/urandom
bash 中读取随机字节?
答案1
random="$(dd if=/dev/urandom bs=3 count=1)"
if
指定输入文件、bs
块大小(3 个字节)和count
块数(1 * 3 = 总共 3 个字节)
答案2
head -c 500 /dev/urandom | tr -dc 'a-zA-Z0-9~!@#$%^&*_-' | fold -w 3 | head -n 1
(如果您想要文字破折号字符,则破折号字符必须位于字符串的末尾,如上所述,而不是*-_
)。
解释一下上述命令集所完成的工作:
head -c 500 /dev/urandom
:从中获取前500个字符(字节)/dev/urandom
。tr -dc 'a-zA-Z0-9~!@#$%^&*_-'
: 消除但是'a-zA-Z0-9~!@#$%^&*_-'
来自第一个命令的输出的指定的字符。fold -w 3
:格式化第二个命令的输出,使得每行有 3 个字符。head -n 1
:显示第三条命令的结果第一行stdout
。
答案3
请检查man od
。
例如,您可以使用
od -vAn -N4 -tu4 < /dev/urandom
生成无符号十进制4字节随机数。
答案4
最简单的解决方案如下:
$ head -cN /dev/urandom