因工作需要,需要使用shell開發(fā)一些小工具,當(dāng)使用數(shù)組作為函數(shù)參數(shù)時,發(fā)現(xiàn)只能傳遞數(shù)組的第一個元素,數(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í)行,只輸出了第一個元素。
./test.sh GZ
$1表示獲取函數(shù)的第一個參數(shù),而函數(shù)的第一個參數(shù)就是regions數(shù)組,這樣就奇怪了,為什么只能獲取到數(shù)組的第一個元素呢?
經(jīng)測試
echo $regions
只會輸出第一個元素,所以使用regions作為參數(shù)傳遞,只會傳遞第一個元素。
因此需要把參數(shù)寫成 “${regions[*]}” 才可以作為數(shù)組傳遞。
代碼修改后如下:
#!/bin/bash function showArr(){ arr=$1 for i in ${arr[*]}; do echo $i done } regions=("GZ" "SH" "BJ") showArr "${regions[*]}" exit 0
運行后輸出數(shù)組所有元素,因此修改后可以把數(shù)組作為函數(shù)參數(shù)傳遞使用。
./test.sh GZ SH BJ
以上這篇shell 使用數(shù)組作為函數(shù)參數(shù)的方法(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
標(biāo)簽:新疆 亳州 懷化 北京 惠州 九江 贛州 河南
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《shell 使用數(shù)組作為函數(shù)參數(shù)的方法(詳解)》,本文關(guān)鍵詞 shell,使用,數(shù)組,作為,函數(shù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。