Um script bash que contém
for i in {a,b}-{1,2}; do
echo $i;
done
impressões
a-1
a-2
b-1
b-2
quando executado. Era o que eu esperava - à medida que a {a,b}
construção é expandida.
No entanto, quando (outro) script contém
v={a,b}-{1,2}
echo $v
imprime
{a,b}-{1,2}
o que não é o que eu esperava. Eu esperava que fosse impresso a-1 a-2 b-1 b-2
. Obviamente, a {a,b}
construção não é expandida.
Eu posso fazê-lo expandir assim
v=$(echo {a,b}-{1,2})
Com base nessas observações, tenho duas perguntas: 1) quando o {a,b}
construto é expandido? 2) é $(echo {a,b}-{1,2})
a maneira preferida de desencadear uma expansão quando necessário?
v=a-1 a-2
significa assign 'a-1' to variable v and run 'a-2'
v=(a-1 a-2)
atribui a matriz à variável v
. v+=(b-1 b-2)
anexa a ele.
=
. Por exemplo,v=a-1 a-2
não vai funcionar.