如何生成随机数量和随机大小的垃圾文件。

10 浏览
0 Comments

如何生成随机数量和随机大小的垃圾文件。

我正试图编写一个脚本,可以生成随机数量和随机长度的垃圾文件。理想情况下,生成1-50个长度为100Kb-100Mb的文件。我已经写了这个脚本,但它只生成了2个文件。我还希望文件名以字符串"RanDoM"后跟一个随机数字。

我做错了什么?

#!/bin/bash
ntimes=$(( ( RANDOM % 50 )  + 1 ))
for i in $(seq 1 $ntimes)
do
   dd if=/dev/urandom of="RanDoM$RANDOM" bs=1K count=$(((RANDOM % 10000) + 1))
done

0
0 Comments

问题的原因是因为在bash中,花括号扩展发生在变量扩展之前,所以无法使用{1..$var}这样的语法。根据bash的man页面的说明,扩展的顺序是:花括号扩展;波浪线扩展、参数和变量扩展、算术扩展和命令替换(按从左到右的顺序);单词拆分;以及路径名扩展。

解决方法是使用外部工具seq来实现所需的功能:

for i in $(seq 1 $ntimes); do
  dd ...
done

0