我在使用脚本中的变量创建目录时遇到问题。前任:
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}