我尝试通过组合字符串和计数器来创建多个文件夹。我不知道我的代码出了什么问题:
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
提前谢谢
答案 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}"