前往shell script教學目錄

 

函式

語法為:

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.shshell 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 參數變數」的效果!

 

上一篇:迴圈

前往shell script教學目錄

arrow
arrow

    埃伯 發表在 痞客邦 留言(0) 人氣()