我刚刚创建了一个名为“ years”的新目录,其中包含几个子目录,每个子目录的名称都为year(即“ 1980”,“ 1981” ...)。现在,我想在每个子目录中创建12个文件(每月一个文件)。
我需要使用for循环来执行此操作,其中还包含命令替换。我正在尝试的代码可以在下面看到,尽管我的问题是我不知道如何在此处使用命令替换,也不知道如何在适当的子目录中创建这些文件(当我运行此代码时,它们是在我的家中创建的)目录)。
for $years in 1980 1981 1982 1983 1984 1985; do
mkdir -p "$years"
case $years in 1980)
for i in 1 2 3 4 5 6; do
touch $i.txt
done
;;
esac
done
我的实际代码比这更长,每年有一个案例,由12个文件而不是6个文件组成。
我该怎么办?
注意:此任务需要使用案例陈述(我正在按照课程活动中的说明进行操作
答案 0 :(得分:0)
您可以通过以下方式更改代码,以在相应文件夹中创建文件:
#!/bin/bash
for years in 1980 1981 1982 1983 1984 1985; do
mkdir -p "$years"
case $years in 1980)
for i in {1..12}; do
touch "$years/$i.txt"
done
;;
esac
done
因此您只需在touch命令中添加目录,否则可以在第二个for循环之前执行 cd“ $ years” ,在第二个for循环之前执行 cd .. 完成。
答案 1 :(得分:0)
您可以使用seq
命令来获取数字序列,然后使用命令替换将其用作迭代的值:
for i in $(seq 1 12)