En iyi yol pozisyon argümanları olarak geçmektir. Başka hiçbir şey. Dize olarak geçebilirsiniz, ancak bu şekilde bazı sıkıntılara neden olabilir. Örnek:
array=(one two three four five)
function show_passed_array(){
echo $@
}
veya
function show_passed_array(){
while $# -gt 0;do
echo $1;shift
done
}
show_passed_array ${array[@]}
çıktı:
one two three four five
Dizi değerinde boşluk sembolleri varsa, işlevde dizine göre dizine göre erişim için önce $ 1 $ 2 $ 3 ... position parametreleri kullanın. Dizin 0 -> 1, 1 -> 2, ... Erişimi tekrarlamak için her zaman $ 1 ve Shift'ten sonra kullanmak en iyisidir. Ek bir şey gerekmez. Böyle bir dizi olmadan değişkenleri iletebilirsiniz:
show_passed_array one two three four five
bash media, otomatik olarak onları işlevine geçen argümanlardan bir dizi oluşturur ve sonra konum argümanlarına sahipsiniz. Ayrıca, $ {array [2]} yazdığınızda, gerçekten iki iki dört argüman yazıp bunları fonksiyona geçirirsiniz. Yani bu çağrılar eşdeğerdir.