我只是想制作一个简单的 bash 脚本来构建树结构,但我无法发现我的逻辑哪里出了问题。截至目前,该脚本将到达第二个深度,但只会填充其中的第一个文件夹。谁能发现我的错误?
谢谢
#!/bin/bash
create(){
directory=$1
for((j=0; j < depth; j++)); do
for x in ${directory[@]}; do
temp=( )
for((i=0; i < breadth; i++)); do
mkdir $x/$i
temp=($temp $x/$i)
done
done
directory=($temp)
done
}
breadth=3
depth=2
direc=(tree)
create $direc
最佳答案
问题是 mkdir 不能在没有 --parents (-p) 开关的情况下创建多级目录。于是上线:
创建目录 $x/$i
它无法创建 $x/$i 因为 $x 不存在。尝试进行此更改:
create(){
directory=$1
for((j=0; j < depth; j++)); do
for x in ${directory[@]}; do
temp=( )
for((i=0; i < breadth; i++)); do
mkdir -p $x/$i
temp=($temp $x/$i)
done
done
directory=($temp)
done
}
breadth=3
depth=2
direc=(tree)
create $direc
根据lotusphp更优雅的方案编辑
关于linux - 在 bash 脚本中制作基本树结构的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12487141/