Un script bash qui contient
for i in {a,b}-{1,2}; do
echo $i;
done
impressions
a-1
a-2
b-1
b-2
une fois exécuté. C'est ce que j'attendais - à mesure que la {a,b}construction est développée.
Cependant, quand (un autre) script contient
v={a,b}-{1,2}
echo $v
il imprime
{a,b}-{1,2}
ce qui n'est pas ce que j'attendais. Je m'attendais à ce qu'il s'imprime a-1 a-2 b-1 b-2. De toute évidence, la {a,b}construction n'est pas développée.
Je peux le faire grandir comme ça
v=$(echo {a,b}-{1,2})
Sur la base de ces observations, j'ai deux questions: 1) quand la {a,b}construction est-elle développée? 2) est $(echo {a,b}-{1,2})la meilleure façon de déclencher une expansion si nécessaire?
v=a-1 a-2signifie assign 'a-1' to variable v and run 'a-2' v=(a-1 a-2)attribue le tableau à la variable v. v+=(b-1 b-2)s'y ajoute.
=. Par exemple,v=a-1 a-2ne fonctionnera pas.