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-2
means 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-2
wird nicht funktionieren.