BVC*_*AAV 1 random bash shell stdout
我想制作bash脚本,向stdout发送一个只包含ASCII可写字符的文件映像.我的脚本应该只接收和接受一个包含应从/ dev/urandom读取的八位字节数的参数.因此,我需要从/ dev/urandom读取给定数量的八位字节以创建要发送到stdout的文件映像.我有这个:
!/斌/庆典
X = 1
如果[$ X -eq 0]则回显"错误:需要参数"
其他
strings/dev/urandom
回显结果科幻
基本上我正在检查是否有任何参数,如果有,请阅读dev/urandom.当然这只是一个草图.
我被告知有一个叫做字符串的命令可以从任何文件中读取和提取字符序列,但是我已经在互联网上查了一下,我找不到很多关于它的信息.
所以我的问题是:我如何读取/ dev/random参数中给出的八位字节数,以便我可以将它们放在stdout中(我知道如何放入stdout :))
strings不是你想要的.如果您只想将随机字符限制在特定集合中,请过滤掉您不想要的内容.要从中获取$ num字母数字字符/dev/urandom,您可以执行以下操作:
tr -dc A-Za-z0-9 < /dev/urandom | dd bs=$num count=1 2> /dev/null
Run Code Online (Sandbox Code Playgroud)
要么
tr -dc '[:alnum:]' < /dev/urandom ...
Run Code Online (Sandbox Code Playgroud)
请注意,这不是严格的便携式.虽然tr它应该适用于任何输入文件的状态标准,但是我的版本抛出错误"非法字节序列".另一种选择是:
perl -pe 's/[^a-zA-Z0-9]//g' /dev/urandom | dd bs=$num count=1 2> /dev/null
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2219 次 |
| 最近记录: |