Dieser Bash-Leitfaden sagt:
Wenn die Indexnummer @ oder * ist, wird auf alle Mitglieder eines Arrays verwiesen.
Wenn ich das mache:
LIST=(1 2 3)
for i in "${LIST[@]}"; do
echo "example.$i "
done
Gibt: example.1 example.2 example.3(gewünschtes Ergebnis).
Aber wenn ich benutze ${LIST[*]}, bekomme ich example.1 2 3stattdessen.
Warum?
Bearbeiten: Wenn Sie printf verwenden, liefern @ und * tatsächlich die gleichen Ergebnisse.
echo, nicht mit printf, habe ich gerade gemerkt.
$*und $@. Die Antwort wäre zwar ähnlich und eine Frage könnte als Teilmenge der anderen angesehen werden, es handelt sich jedoch um unterschiedliche Fragen.
echo $SHELLdie Ausgabe aus und fügen Sie sie in Ihre Frage ein.