在Bash脚本中创建目录的问题

4
我正在尝试使用mkdir命令创建一个文件夹树,它应该具有以下结构:
rootfs
├── Fol1
│   ├── Fol11
│   └── Fol12
└── Fol2

我使用以下方式成功创建了这棵树:

mkdir -p /rootfs/{Fol1/{Fol11,Fol12},Fol2}

然而,文件夹rootfs应该是可变的,这就是为什么我尝试了这个。
ROOT=/rootfs
FOLDERTREE=/{Fol1/{Fol11,Fol12},Fol2}
mkdir -p "$ROOT$FILETREE"

虽然echo "$ROOT$FILETREE"返回的确切路径是/rootfs/{Fol1/{Fol11,Fol12},Fol2},但我得到了错误的文件树。

rootfs
└── {Fol1
    └── {Fol11,Fol12},Fol2}

我在这里做错了什么吗?
2个回答

5

花括号在变量替换的结果中不会被处理。请使用:

mkdir -p "$ROOT"/{Fol1/{Fol11,Fol12},Fol2}

4
您可以使用BASH数组来保存所有的目录路径,如下所示:
dirs=( "${ROOT}"/{Fol1/{Fol11,Fol12},Fol2} )

然后按以下方式创建:

mkdir -p "${dirs[@]}"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接