No shell do Plano 9 rc
, pode-se escrever
echo (foo bar baz)^.c
para obter
foo.c bar.c baz.c
ou
echo (foo bar baz)^(.c .h .o)
para obter
foo.c bar.h baz.o
Existe um equivalente a isso no Bash? Especificamente, existe uma maneira mais rápida do que
`for f in foo bar baz; do echo $f.c; done`
para o primeiro, e esse método existe para o último?
Você pode usar a expansão de chaves para o primeiro caso:
(Observação: isso não funciona para listas armazenadas em variáveis, porque a expansão de chaves ocorre antes da expansão de variáveis.)
Mas não acho que haja uma maneira de juntar duas listas (como a do Plano 9
echo (foo bar baz)^(.c .h .o)
). Se você usar a expansão de chaves com duas listas, ela fornecerá todas as combinações possíveis: