Panduan Bash ini mengatakan:
Jika nomor indeks adalah @ atau *, semua anggota array direferensikan.
Ketika saya melakukan ini:
LIST=(1 2 3)
for i in "${LIST[@]}"; do
echo "example.$i "
done
Memberi: example.1 example.2 example.3 (hasil yang diinginkan).
Tapi ketika saya gunakan ${LIST[*]}, saya mengertiexample.1 2 3 sebagai gantinya.
Mengapa?
Sunting: ketika menggunakan printf, @ dan * sebenarnya memberikan hasil yang sama.
Contoh saya salah, ini sebenarnya hanya terjadi dengan
—
arjan
echo, bukan dengan printf, saya baru saja perhatikan.
kemungkinan rangkap dua Apa perbedaan antara $ * dan $ @?
—
goldilocks
@goldilocks Pertanyaan lainnya adalah tentang
—
Stéphane Chazelas
$*dan $@. Meskipun, jawabannya akan serupa dan satu pertanyaan dapat dianggap sebagai bagian dari yang lain, mereka adalah pertanyaan yang berbeda.
echo $SHELLdan tempel output ke pertanyaan Anda.