shell 使用數(shù)組作為函數(shù)參數(shù)的方法(詳解)
因工作需要,需要使用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è)元素。
./test.sh GZ
$1表示獲取函數(shù)的第一個(gè)參數(shù),而函數(shù)的第一個(gè)參數(shù)就是regions數(shù)組,這樣就奇怪了,為什么只能獲取到數(shù)組的第一個(gè)元素呢?
經(jīng)測(cè)試
echo $regions
只會(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ù)傳遞使用。
./test.sh GZ SH BJ
以上這篇shell 使用數(shù)組作為函數(shù)參數(shù)的方法(詳解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
ssh遠(yuǎn)程執(zhí)行命令方法和Shell腳本實(shí)例
這篇文章主要介紹了ssh遠(yuǎn)程執(zhí)行命令方法和Shell腳本實(shí)例,本文講解了ssh執(zhí)行遠(yuǎn)程操作方法和遠(yuǎn)程執(zhí)行命令shell腳本示例,需要的朋友可以參考下2015-04-04shell腳本實(shí)現(xiàn)同時(shí)多臺(tái)遠(yuǎn)程主機(jī)執(zhí)行命令的代碼分享
這篇文章主要給大家介紹了關(guān)于shell腳本實(shí)現(xiàn)同時(shí)多臺(tái)遠(yuǎn)程主機(jī)執(zhí)行命令的方法,文中給出了詳細(xì)的代碼示例,相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-03-03Shell中的循環(huán)語(yǔ)句for、while、until實(shí)例講解
這篇文章主要介紹了Shell中的循環(huán)語(yǔ)句for、while、until實(shí)例講解,簡(jiǎn)單清晰明了,非常不錯(cuò)的教程,需要的朋友可以參考下2014-06-06Linux中使用Shell腳本查看Java線程的CPU使用情況
這篇文章主要介紹了Linux中使用Shell腳本查看Java線程的CPU使用情況,需要的朋友可以參考下2014-06-06分享70個(gè)經(jīng)典的 Shell 腳本面試題與答案
我們?yōu)槟愕拿嬖嚋?zhǔn)備選擇了 70 個(gè)你可能遇到的 shell 腳本面試問(wèn)題及解答。了解腳本或至少知道基礎(chǔ)知識(shí)對(duì)系統(tǒng)管理員來(lái)說(shuō)至關(guān)重要,它也有助于你在工作環(huán)境中自動(dòng)完成很多任務(wù)2018-02-02