Bash:传递变量作为 mkdir 的参数

问题描述 投票:0回答:1

我正在尝试传递具有以下字符串值的变量 $subdir :

subdir="subdir{1..5}/subdir{1..5}/subdir{1..5}/subdir{1..5}"

按以下方式进入命令 mkdir :

mkdir -p $subdir

但是,这会创建以下结构:

enter image description here

当我运行这个时:

mkdir -p subdir{1..5}/subdir{1..5}/subdir{1..5}/subdir{1..5}

我得到了我想要的结构:

enter image description here

如何在将路径作为变量传递时使命令工作。我尝试使用引号,但它不起作用。

bash scripting mkdir
1个回答
1
投票

大括号扩展需要不加引号,所以:

mkdir -p subdir{1..5}/subdir{1..5}/subdir{1..5}/subdir{1..5}

检查https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html

如果你真的需要一个变量:

eval mkdir -p "$path"

warning 确保

"$path"
不是由
CGI
脚本或任何随机用户输入生成的。

© www.soinside.com 2019 - 2024. All rights reserved.