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-2
signifie 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-2
ne fonctionnera pas.