新聞中心
這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Shell函數(shù)參數(shù)
和 C++、C#、Python 等大部分編程語(yǔ)言不同,Shell 中的函數(shù)在定義時(shí)不能指明參數(shù),但是在調(diào)用時(shí)卻可以傳遞參數(shù)。

函數(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
當(dāng)前文章:Shell函數(shù)參數(shù)
分享路徑:http://fisionsoft.com.cn/article/copiosh.html


咨詢
建站咨詢
