La {}sintaxis de expansión de llaves de Bash permite crear permutaciones fáciles
# echo {b,c,d}{a,e,i,o,u}
ba be bi bo bu ca ce ci co cu da de di do du
Sin embargo, no está claro para mí si / cómo es posible usar esto junto con las matrices, excepto en el uso incómodo de $() echoyeval
¿Hay una manera simple de usar matrices con expansión de llaves (permutación)?
Por ejemplo, imagina algo como (que, por supuesto, no funciona):
CONS=( b c d )
VOWEL=( a e i o u )
echo {${CONS[@]}}{${VOWEL[@]}}

GNU bash, version 4.2.24Outputroot@router:~# echo {${CONS[@]}}{${VOWEL[@]}} {b c d}{a e i o u}.si quieres algo diferente, háznoslo saber ... 'ba be bi bo bu ca ce ci co cu da de di do du.Respuestas:
Puede usar eval with
IFS=,; "${array[*]}"(que une los valores con comas) o solo dos para bucles:fuente
Es posible con
zsh:O
es:Con
bashoksh93, tendrías que hacer algo complicado como:fuente
evalo.).eval "echo {$(printf ',%s' "${CONS[@]}" "${VOWEL[@]}" | tail -c+2)}"(Sin embargo, no funciona para un solo elemento).Divertido, pero probablemente no el mejor.
fuente