Bu Bash kılavuzu şunları söylüyor:
Dizin numarası @ veya * ise, bir dizinin tüm üyelerine başvurulur.
Bunu yaptığımda:
LIST=(1 2 3)
for i in "${LIST[@]}"; do
echo "example.$i "
done
Verir: example.1 example.2 example.3
(istenen sonuç).
Ama kullandığımda bunun yerine ${LIST[*]}
alıyorum example.1 2 3
.
Neden?
Düzenleme: printf kullanırken, @ ve * aslında aynı sonuçları verir.
Benim örnek bu aslında sadece olur, yanlış
—
arjan
echo
değil ile, printf
sadece fark.
olası yinelenen $ * ve $ arasındaki fark nedir @?
—
goldilocks
@goldilocks Diğer soru
—
Stéphane Chazelas
$*
ve hakkındadır $@
. Gerçi, cevap benzer olacak ve bir soru olabilir diğer bir alt kümesi olarak kabul edilmesi, farklı sorulardır.
echo $SHELL
Çıkışı çalıştırın ve sorunuza yapıştırın.