書-Linux命令行與shell腳本編程大全(第3版)

 image

 

●函數-參數

○全域變數&區域變數

●陣列

 

函數-參數

$# :參數數量

$0 :程式名稱

$1 :1個參數

$2 :2個參數

$3 :3個參數

            .

             .

            .

 

程式:

有4個參數,在函數中用$#來顯示參數數量。

image

 

結果:

image

 

程式:

用$0來顯示此程式的名稱

image

 

結果:

image

 

程式:

 

使用$1~$4來使用參數,並相加

image

 

結果:

image

 

之前也有講過在終端機輸入也是用$1~$9,但是這兩個並不衝突,下面我們來在終端機中輸入數字相加。

 

在function外用就是終端機的,在function內用就是函數的參數。

 

程式:

image

 

結果:

image

 

全域變數&區域變數

 

1.全域變數

 

基本上,宣告的變數都是全域變數(在任何地方都可以使用),

所以不管在function中還是在哪裡都可以直接的去使用、修改變數的值。

 

程式:

在function中可以更改tmp的值。

image

 

結果:

image

 

程式:

可以看到我在function中宣告一個變數val,在function外也可以使用。

image

 

結果:

image

2.區域變數

只能在function中,或是function外使用,目的是為了不要變更某個值。

 

程式:

使用了關鍵字localtmpfunction中的值並不會更改到function外的tmp。

image

 

結果:

image

 

 

陣列

印出陣列的方式是${tmp[*]},加大括號是為了讓tmp[*]合在一起。

 

程式:

如果照一般參數的取得$1會只有陣列的第1個值。

image

 

結果:

image

 

程式:

在方法中宣告一個新的變數arr,要取得參數(型態為陣列)就要使用($(echo “$@”))

image

 

結果:

image

 

程式:

這個就是把陣列的內容都*2。

陣列的長度為4,但是陣列是從0開始算,所以要減1

image

 

結果:

image

  

 

arrow
arrow
    創作者介紹
    創作者 讀書小天地 的頭像
    讀書小天地

    書籍分享天地

    讀書小天地 發表在 痞客邦 留言(0) 人氣()