在 Plan 9 rc
shell 中,可以编写
echo (foo bar baz)^.c
要得到
foo.c bar.c baz.c
或者
echo (foo bar baz)^(.c .h .o)
要得到
foo.c bar.h baz.o
在 Bash 中是否有与此等价的功能?具体来说,有没有比前者更快
`for f in foo bar baz; do echo $f.c; done`
的方法,后者有没有这样的方法?
在 Plan 9 rc
shell 中,可以编写
echo (foo bar baz)^.c
要得到
foo.c bar.c baz.c
或者
echo (foo bar baz)^(.c .h .o)
要得到
foo.c bar.h baz.o
在 Bash 中是否有与此等价的功能?具体来说,有没有比前者更快
`for f in foo bar baz; do echo $f.c; done`
的方法,后者有没有这样的方法?
您可以对第一种情况使用大括号扩展:
(注意:这不适用于存储在变量中的列表,因为大括号扩展发生在变量扩展之前。)
但我认为没有办法让它将两个列表压缩在一起(如 Plan 9's
echo (foo bar baz)^(.c .h .o)
)。如果您对两个列表使用大括号扩展,它会为您提供所有可能的组合: