首页 > 解决方案 > 如何生成随机数量的随机大小的垃圾文件

问题描述

我正在尝试编写一个脚本,该脚本将生成随机数量的随机长度的垃圾文件。理想情况下,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

标签: bash

解决方案


该构造{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

推荐阅读