2.5 - Expansões de Chave
Expansões de Chave são um tipo específico de expansão do shell, como os que vimos anteriormente ($()
e $(())
), que usa expressões cercadas por chaves ({}
) para expandir para um conjunto de valores. Por exemplo:
a{b,c,d}e
para abe ace ade
. Note algumas coisas:
- Cada elemento dentro das chaves foi usado para materializar um elemento no resultado final
- O resultado foi a expansão dos elementos separados por espaço, na ordem em que eles estão dentro das chaves
É possível combinar mais de uma expansão de chaves na mesma expressão:
Não precisamos nos limitar a apenas conjuntos de elementos formados por uma única letra, mas podemos usar valores de tamanhos variados.
O exemplo acima mostra uma expansão com apenas dois elementos, cada um com um tamanho diferente.
Também podemos expandir os elementos dentro das chaves para o intervalo de uma sequência ncremental usando a expansão ..
. Por exemplo:
Podemos também controlar a forma como estas sequências são incrementadas:
echo {1..9..2} # Incrementa de dois em dois
echo {1..9..3} # ou de três em três
echo {a..z..3} # também funciona com letras
O fato de expansões deste tipo serem formadas com os elementos separados por espaço as tornam úteis quando usamos estas expansões com comandos que recebem múltiplos argumentos e que podem ser usados de forma mais produtiva. Por exemplo: