Cara terbaik adalah lulus sebagai argumen posisi. Tidak ada lagi. Anda dapat lulus sebagai string, tetapi cara ini dapat menyebabkan beberapa masalah. Contoh:
array=(one two three four five)
function show_passed_array(){
echo $@
}
atau
function show_passed_array(){
while $# -gt 0;do
echo $1;shift
done
}
show_passed_array ${array[@]}
keluaran:
one two three four five
Maksud Anda jika nilai array memiliki simbol spasi, Anda harus mengutip elemen terlebih dahulu sebelum lulus untuk mengakses nilai berdasarkan indeks dalam fungsi, gunakan $ 1 $ 2 $ 3 ... parameter posisi. Di mana indeks 0 -> 1, 1 -> 2, ... Untuk mengulangi akses yang terbaik adalah selalu menggunakan $ 1 dan setelah Shift. Tidak ada tambahan yang dibutuhkan. Anda dapat memberikan argumen tanpa array seperti ini:
show_passed_array one two three four five
bash media secara otomatis membuat larik dari argumen yang diteruskan yang meneruskannya agar berfungsi dan kemudian Anda memiliki argumen posisi. Selanjutnya ketika Anda menulis $ {array [2]} Anda benar-benar menulis argumen konsekuen satu dua tiga empat dan meneruskannya ke fungsi. Jadi, panggilan itu setara.