Bash 带参数扩展的行继续

Bash line continuation with parameter expansion

这个

mkdir -p a/{b,c}

制作目录结构:

a
|-- b
`-- c

然而,这

mkdir \p a/{ \
   b, \
   c \
   }

导致这种情况发生:

|-- }
|-- a
|   `-- {
|-- b
|-- ,c

这是为什么?有修复吗?

大括号扩展中不能有未加引号的空格。这将导致大括号扩展失败,而是作为文字字符串传递(这就是为什么您改为创建名为 } 的目录)。

如果您删除所有空格,它会起作用:

mkdir -p a/{\
b,\
c\
}