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 3
stattdessen.
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 $SHELL
die Ausgabe aus und fügen Sie sie in Ihre Frage ein.