Você pode armazenar a expansão da chave em uma matriz e, em seguida, enviá-la da maneira que você escolher:
urls=( localhost:8080/reports/{promos,promo-updates,scandown}/{130,139,142}{,-unburdened,-burdened}{,.pdf,.xls,.xlsx,.csv,.preload} )
Então
printf "%s\n" "${urls[@]}"
ou
(IFS=$'\n'; echo "${urls[*]}")
O exemplo echo parece estranho porque:
- ele é executado em um subshell (os parênteses), portanto, não altero meu valor atual do IFS.
- O IFS precisa ser definido em um comando separado:
- Isso não funciona:
IFS=$'\n' echo "${urls[*]}"
porque a variável é expandida antes de a nova variável env entrar em vigor - O IFS precisa ser definido antes para você começar a expandir as variáveis.
- Isso não funciona:
Além disso, observe a diferença sutil no índice da matriz de referência usada:
-
[@]
no exemplo printf para expandir o array em palavras individuais -
[*]
no exemplo de eco para expandir a matriz em uma única palavra, com elementos separados pelo primeiro caractere do IFS