bash - 如何生成随机数量的随机大小的垃圾文件
问题描述
我正在尝试编写一个脚本,该脚本将生成随机数量的随机长度的垃圾文件。理想情况下,1-50 个长度为 100Kb-100Mb 的文件。我已经编写了这个脚本,但只生成了 2 个文件。我还希望文件名是字符串“RanDoM”,后跟一个随机数。
我究竟做错了什么?
#!/bin/bash
ntimes=$(( ( RANDOM % 50 ) + 1 ))
for i in {1.. $ntimes}
do
dd if=/dev/urandom of=$RANDOM bs=1K count=$(((RANDOM % 10000) + 1))
done
解决方案
该构造{1..$var}
不起作用,因为大括号扩展发生在变量扩展之前。从 bash 手册页:
The order of expansions is: brace expansion; tilde expansion, parameter and variable expansion, arithmetic expansion, and command substitution (done in a left-to-right fashion); word splitting; and pathname expan- sion.
您可以使用外部工具获得所需的功能,例如seq
:
for i in $(seq 1 $ntimes); do
dd ...
done
推荐阅读
- video-processing - 用于去隔行视频帧的金属着色器
- vim - 如何在带有路径环境变量的插入模式下使用vim文件名完成遍历目录?
- excel - Excel VBA - 如何修复滚动条值?
- sql-server - Laravel 8 - SQL Server 日期类型(不是日期时间)解析错误
- powershell - 使用 rename-item cmdlet 时出现脚本块错误
- php - 如何配置 GitLab 的 phpcs-security-audit 分析器?
- java - 如何使用正则表达式检查多个字符串之间的特定字符串?
- javascript - 引导堆栈模型滚动问题
- python - 想在我的数据集中搜索“多重相关”。做两个或多个变量一起预测我的目标变量
- llvm - 如何为开源项目的全程序分析生成llvm bitcode?如何使用 llvm-link/gold 插件来做到这一点?