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 $SHELL
dan tempel output ke pertanyaan Anda.