因工作需要,需要使用shell開(kāi)發(fā)一些小工具,當(dāng)使用數(shù)組作為函數(shù)參數(shù)時(shí),發(fā)現(xiàn)只能傳遞數(shù)組的第一個(gè)元素,數(shù)組后面的元素不能傳遞到函數(shù)內(nèi)。
#!/bin/bash
function showArr(){
arr=$1
for i in ${arr[*]}; do
echo $i
done
}
regions=("GZ" "SH" "BJ")
showArr $regions
exit 0
把代碼保存為test.sh后執(zhí)行,只輸出了第一個(gè)元素。
$1表示獲取函數(shù)的第一個(gè)參數(shù),而函數(shù)的第一個(gè)參數(shù)就是regions數(shù)組,這樣就奇怪了,為什么只能獲取到數(shù)組的第一個(gè)元素呢?
經(jīng)測(cè)試
只會(huì)輸出第一個(gè)元素,所以使用regions作為參數(shù)傳遞,只會(huì)傳遞第一個(gè)元素。
因此需要把參數(shù)寫(xiě)成 “${regions[*]}” 才可以作為數(shù)組傳遞。
代碼修改后如下:
#!/bin/bash
function showArr(){
arr=$1
for i in ${arr[*]}; do
echo $i
done
}
regions=("GZ" "SH" "BJ")
showArr "${regions[*]}"
exit 0
運(yùn)行后輸出數(shù)組所有元素,因此修改后可以把數(shù)組作為函數(shù)參數(shù)傳遞使用。
以上這篇shell 使用數(shù)組作為函數(shù)參數(shù)的方法(詳解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- Shell腳本數(shù)組操作小結(jié)
- Shell腳本數(shù)組用法小結(jié)
- linux shell數(shù)組深入學(xué)習(xí)理解
- shell for循環(huán)與數(shù)組應(yīng)用介紹
- linux shell 中數(shù)組的定義和for循環(huán)遍歷的方法
- Linux shell數(shù)組循環(huán)的實(shí)例詳解
- Shell中創(chuàng)建序列和數(shù)組(list、array)的方法
- 淺談shell數(shù)組的定義及循環(huán)
- Shell動(dòng)態(tài)生成數(shù)組的多種方法
- Shell中數(shù)組以及其相關(guān)操作的詳細(xì)實(shí)例