Linux批处理:通过组合名称和序列号创建多个文件夹

时间:2018-02-08 19:33:36

标签: 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: dir: command not found
  ./test.sh: line 7: NUM: command not found

提前谢谢

2 个答案:

答案 0 :(得分:3)

这里不需要使用循环。 shell将为您完成所有必要的扩展。事实上,作为{1..10}循环的一部分,您已经依赖shell来扩展for。因此,您可以直接使用mkdir扩展。另外,通过使用mkdir -p <path>(根据需要创建父目录),您可以避免在执行mkdir $NUM之前先执行mkdir $NUM/decoded

总而言之,您可以在一行中完成所需的工作:

mkdir -p dir{1..10}/decoded

修改:要更直接地回答有关command not found错误的问题,它看起来像(如Bjorn A.所提到的)你只需要摆脱前后的空格您的变量作业中的=

答案 1 :(得分:1)

bash中的赋值运算符周围不能有空格。第6行和第7行必须如下所示:

DirName="dir"
NUM="${DirName}${count}"
相关问题