使用变量的 mkdir

使用变量的 mkdir

我在使用脚本中的变量创建目录时遇到问题。前任:

read user
mkdir $user{01..10}

有趣的是,它将像这样工作:

read user
mkdir {01..10}$user

有什么办法可以解决这个问题,或者我错过了什么?

谢谢

答案1

大括号扩展发生在 . 中的变量扩展之前bash。这意味着该命令

mkdir $user{01..10}

首先扩展到

mkdir $user01 $user02 (etc.)

这些变量不存在,因此最终运行的命令将是

mkdir

没有操作数。

要解决此问题,请使用

mkdir "$user"{01..10}

答案2

您只需要使用括号进行正确的变量扩展和环境变量解析:

read user
mkdir ${user}{01..10}

双引号虽然不是最优雅的方式,但仍然有效:

read user
mkdir "$user"{01..10}

相关内容