函式
語法為:
function 函式名稱()
{ 函式程式碼 }
在函式程式碼中,可用:
(1) $N來擷取第N個參數的值(N是整數,從1開始)。
(2) $#可用來擷取參數的數目。
(3) $*可擷取所有輸入參數。
(4) shift指令可以解除第一個參數的設定,並使所有參數「往前靠攏」。此時$N的值會被原本$N+1的值所取代,$#的值也會減1,$*也會改變。
範例如:
function get_mean()
{
t=0
n=$#
echo "the mean of "$*":"
while [ $# -ne 0 ]
do
t=$(($t+$1))
shift
done
t=$(($t/n))
echo $t
}
get_mean 1 6 10 32
執行後顯示:
注意:shell script中並不支援浮點數,故除法所算出的結果,會四捨五入成整數。
※註(極重要!):事實上,在shell script中「非函式程式碼」的部分,$N、$#、$*、shift也有意義。此時$N代表的是「script 參數變數」而非「函式參數變數」。這也說明了,在執行shell script程式的時候可以輸入參數,如這樣的命令:
sh 檔案名稱.sh 參數一 參數二 #參數可以有任意個或者是沒有
將之前的例子修改一下,現有一個名為tt.sh的shell script程式,其程式碼為:
t=0
n=$#
echo "the mean of "$*":"
while [ $# -ne 0 ]
do
t=$(($t+$1))
shift
done
t=$(($t/n))
echo $t #這程式碼只是把之前例子中,function裡的程式碼給拿出來而已
我們在命令列執行shell script程式時可以輸入參數,如:sh tt.sh 10 90 22 101 30
執行結果顯示:
這就是「script 參數變數」的效果!
留言列表