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我尝试创建多个文件夹。“很抱歉把你弄糊涂了。”比约娜。我刚刚删除了空间,然后它就工作了-:谢谢