linux - 在 bash 脚本中制作基本树结构的问题

标签 linux bash tree

我只是想制作一个简单的 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/

相关文章:

python - 如何递归求和并将所有子值存储在树中

c++ - 命令行错误中缺少DSO(动态共享库)的解决方案是什么?

linux - 如何正确使用这个 cp 命令

linux - 如果遇到10或20如何删除变量的最后一位?

linux - 当我在其中导出变量时,Shell 脚本不起作用

algorithm - 确定树中两个随机节点之间的距离

c - 对同一个信号使用多个信号处理程序是否有效?

linux - Perl匿名管道没有输出

linux - RVM 源作为 sudo?

c++ - 检查BST中每个节点的平衡因子并将其存储在节点中