Ein Bash-Skript, das enthält
for i in {a,b}-{1,2}; do
echo $i;
done
druckt
a-1
a-2
b-1
b-2
wenn ausgeführt. Dies ist, was ich erwartet hatte - als das {a,b}Konstrukt erweitert wird.
Wenn jedoch (ein anderes) Skript enthält
v={a,b}-{1,2}
echo $v
es druckt
{a,b}-{1,2}
Das ist nicht das, was ich erwartet hatte. Ich habe erwartet, dass es gedruckt wird a-1 a-2 b-1 b-2. Offensichtlich ist das {a,b}Konstrukt nicht erweitert.
Ich kann es so erweitern
v=$(echo {a,b}-{1,2})
Aufgrund dieser Beobachtungen habe ich zwei Fragen: 1) Wann wird das {a,b}Konstrukt erweitert? 2) Ist $(echo {a,b}-{1,2})die bevorzugte Methode, um bei Bedarf eine Erweiterung auszulösen?
v=a-1 a-2means assign 'a-1' to variable v and run 'a-2' v=(a-1 a-2)weist das Array der Variablen zu v. v+=(b-1 b-2)hängt daran an.
=. Zum Beispielv=a-1 a-2wird nicht funktionieren.