Linux批处理:按名称和序列号组合创建多文件夹
我正在尝试通过组合字符串和计数器来创建多文件夹。我不知道为什么我的代码有什么问题:Linux批处理:按名称和序列号组合创建多文件夹,linux,shell,Linux,Shell,我正在尝试通过组合字符串和计数器来创建多文件夹。我不知道为什么我的代码有什么问题: echo 'Start' let count=0 for p in {1..10} do DirName= "dir" NUM = "${DirName}${count}" let count++ mkdir $NUM mkdir "$NUM"/decoded done 我犯了这样的错误 ./test.sh: line 6:
echo 'Start'
let count=0
for p in {1..10}
do
DirName= "dir"
NUM = "${DirName}${count}"
let count++
mkdir $NUM
mkdir "$NUM"/decoded
done
我犯了这样的错误
./test.sh: line 6: dir: command not found
./test.sh: line 7: NUM: command not found
提前感谢此处无需使用循环。外壳将为您执行所有必要的扩展。事实上,作为for循环的一部分,您已经依赖shell来为您扩展{1..10}。因此,您可以直接在mkdir中使用该扩展。另外,通过使用mkdir-p根据需要生成父目录,您可以避免在执行mkdir$NUM/decoded之前先执行mkdir$NUM 总而言之,您可以在一行中完成所需的工作:
mkdir -p dir{1..10}/decoded
编辑:为了更直接地回答您关于命令未找到错误的问题,它看起来像Bjorn A。您只需要在变量赋值中去掉=前后的空格。这里不需要使用循环。外壳将为您执行所有必要的扩展。事实上,作为for循环的一部分,您已经依赖shell来为您扩展{1..10}。因此,您可以直接在mkdir中使用该扩展。另外,通过使用mkdir-p根据需要生成父目录,您可以避免在执行mkdir$NUM/decoded之前先执行mkdir$NUM 总而言之,您可以在一行中完成所需的工作:
mkdir -p dir{1..10}/decoded
编辑:要更直接地回答有关“未找到的命令”错误的问题,它看起来像Bjorn A。您只需要在变量赋值中去掉“=”前后的空格。在bash中,赋值运算符周围不能有空格。第6行和第7行必须如下所示:
DirName="dir"
NUM="${DirName}${count}"
bash中的赋值运算符周围不能有空格。第6行和第7行必须如下所示:
DirName="dir"
NUM="${DirName}${count}"
您正在尝试创建多个文件夹,还是多个文件夹是特定的?Shell脚本可能会对空白区很挑剔。删除等号前后的空格。在脚本中使用shebang,以便我们知道您使用的是什么shell,并在标记中对其进行详细说明。@Yeti我尝试创建多个文件夹。“很抱歉把你弄糊涂了。”比约娜。我刚刚删除了空间,然后它就工作了-:谢谢,你是在尝试创建多个文件夹还是多文件夹有什么特别的吗?Shell脚本可能会对空白区很挑剔。删除等号前后的空格。在脚本中使用shebang,以便我们知道您使用的是什么shell,并在标记中对其进行详细说明。@Yeti我尝试创建多个文件夹。“很抱歉把你弄糊涂了。”比约娜。我刚刚删除了空间,然后它就工作了-:谢谢