La {}
syntaxe d'expansion des accolades de Bash permet de créer des permutations faciles
# echo {b,c,d}{a,e,i,o,u}
ba be bi bo bu ca ce ci co cu da de di do du
Cependant, il n'est pas clair pour moi si / comment il est possible de l'utiliser avec des tableaux, sauf dans une utilisation très maladroite de $()
echo
eteval
Existe-t-il un moyen simple d'utiliser des tableaux avec une extension d'accolade (permutation)?
Par exemple, imaginez quelque chose comme (qui ne fonctionne pas bien sûr):
CONS=( b c d )
VOWEL=( a e i o u )
echo {${CONS[@]}}{${VOWEL[@]}}
GNU bash, version 4.2.24
Outputroot@router:~# echo {${CONS[@]}}{${VOWEL[@]}} {b c d}{a e i o u}.
si vous voulez différent alors faites le nous savoir .. `ba be bi bo bu ca ce ci co cu da de di do du
.Réponses:
Vous pouvez utiliser eval avec
IFS=,; "${array[*]}"
(qui joint les valeurs par des virgules) ou seulement deux pour les boucles:la source
C'est possible avec
zsh
:Ou
es
:Avec
bash
ouksh93
, vous devriez faire quelque chose de compliqué comme:la source
eval
ou.
).eval "echo {$(printf ',%s' "${CONS[@]}" "${VOWEL[@]}" | tail -c+2)}"
(Ne fonctionne pas pour un seul élément cependant.)Amusant, mais probablement pas le meilleur.
la source