十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶(hù) + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂(yōu)售后,網(wǎng)站問(wèn)題一站解決

函數(shù)參數(shù)是 Shell 位置參數(shù)的一種,在函數(shù)內(nèi)部可以使用
$n來(lái)接收,例如,$1 表示第一個(gè)參數(shù),$2 表示第二個(gè)參數(shù),依次類(lèi)推。
除了
$n,還有另外三個(gè)比較重要的變量:
$#可以獲取傳遞的參數(shù)的個(gè)數(shù);$@或者$*可以一次性獲取所有的參數(shù)(猛擊《Shell $*和$@的區(qū)別》可以了解更多內(nèi)容)。$n、$#、$@、$* 都屬于特殊變量,不了解的讀者請(qǐng)轉(zhuǎn)到《Shell特殊變量》。
【實(shí)例1】使用 $n 來(lái)接收函數(shù)參數(shù)。
#!/bin/bash
#定義函數(shù)
function show(){
echo "Tutorial: $1"
echo "URL: $2"
echo "Author: "$3
echo "Total $# parameters"
}
#調(diào)用函數(shù)
show C# http://c.biancheng.net/csharp/ Tom
運(yùn)行結(jié)果:
Tutorial: C#
URL: http://c.biancheng.net/csharp/
Author: Tom
Total 3 parameters
注意,第 7 行代碼的寫(xiě)法有點(diǎn)不同,這里使用了 Shell 字符串拼接技巧。
【實(shí)例2】使用 $@ 來(lái)遍歷函數(shù)參數(shù)。
定義一個(gè)函數(shù),計(jì)算所有參數(shù)的和:
#!/bin/bash
function getsum(){
local sum=0
for n in $@
do
((sum+=n))
done
echo $sum
return 0
}
#調(diào)用函數(shù)并傳遞參數(shù),最后將結(jié)果賦值給一個(gè)變量
total=$(getsum 10 20 55 15)
echo $total
#也可以將變量省略
echo $(getsum 10 20 55 15)
運(yùn)行結(jié)果:
100
100