最近,在大学里,我们开始使用 Linux 和 Bash。我们有一个任务,我们必须创建 5 个目录,名称分别为Directory1
、Directory2
等等。在每个目录中,我们必须创建 10 个文件,其中包含一个随机数。
我开始是这样,但我不知道下一步该做什么:
#!/bin/bash
for i in {1..5}
do
mkdir "Directory${i}"
done
你能帮我么?
答案1
其实我觉得你应该自己做功课,你的问题里就包含了你需要的一些知识。
- 您了解循环。
- 您必须在第一个循环内做一个循环。
- 您应该研究如何获取随机数。
尽管如此,如果我没有误解你的话,这里有一个符合你要求的单行代码:
for i in {1..5}; do mkdir "Directory${i}"; for j in {1..10}; do echo $RANDOM > "Directory${i}/File${j}"; done; done
答案2
这是另一个使用单行解决方案括号扩展用于创建目录和文件以及用于生成随机数并将它们添加到每个文件的 for 循环(感谢@pLumo 的建议):
mkdir -p Directory{1..5} && for f in Directory{1..5}/{1..10}.txt; do echo "$RANDOM" > "$f"; done
该-p
选项告诉mkdir
创建您指定的路径的任何父目录(这里不相关),并且还告诉它如果目录已经存在则不要失败(因此您可以再次运行相同的命令)。