シェルスクリプト(関数定義と呼び出しのパラメータ)

                                        関数呼び出しの定義とパラメータ

関数は、それらを使用することができる前に、関数を定義する必要があり、定義された機能コードは呼び出しを容易にするために、モジュラーシェルで使用することができる特定の機能の完了コード断片です。

まず、関数を定義します

この方法の一つ:

関数名(){

        機能コード機能が実装されます

}


方法2:

関数関数名{

        機能コード機能が実装されます

}


第二に、コール・パラメータ

変数、関数名

関数名、変数値の再割り当て

関数名の位置変数$ 1 $ 2 $ 3 .....

以下は、関数パラメータを渡すのいくつかの例であり、

場所変数の伝達関数

#!/ binに/ bashの
位置########伝達関数パラメータ
であれば[$#-ne 3];その後、# スクリプトは、パラメータが等しくない場合は3、その後、印刷スクリプトの使用及び終了
        エコー」使用:: `ベース名$ 0 'PARl PAR2 PAR3"     
        出口
Fiの
ファン(){ 
        エコー"$ [$ 1 * $ 2 * $ 3]" 
        $ 1 $ 2 $ 3は#位置パラメータの関数
} 
結果=`ファン$ 1 $ 2 $ 3` 
#とここでは$ 1 $ 2 $ 3スクリプトが許容位置パラメータおよび場所パラメータ機能楽しいスクリプトが受信機能に送信される
エコー「$結果」


関数呼び出しの数値配列変数

################# 
#値1-5を有するスクリプト配列を定義し、ARRY機能、NUM外部パラメータの受信値の役割、およびそれぞれの定義します合計値と値を乗算
NUM =(1 2 3 4 5 )# アレイNUMの定義
合計1 =和定義された初期値#1〜 定義関数アレイ
{ARRYを()
        "の$ @" # "$の@"でIためにすべてのパラメータのための$ *はまた、すべてのパラメータを表し、「」を追加する必要
        行う
        値を乗じて= *私のlet $ SUMは、私は$ #sum読まないし、次にそのに割り当てられて
        DONE 
} 
ARRY $ {NUM [@]} #$ num個の値を読み込み、関数配列を実行する。
エコー$ SUMを


#!/ binに/ bashのは
上記の#スクリプトと同じスクリプトのアクションは、スクリプトが数値パラメータで実行され、SUM2の1つを掛けたすべての数値のためのループ
SUM2 = 1 
J *のための$で
行う
        のlet SUM2の*の$のJ = 
DONE 
エコー$ SUM2

       

例変数関数に変数パラメータと再割り当ての定義を取得する方法の以下の例

他の変数と競合しないように、ローカル変数名は、機能だけで有効になり、全体的な状況には影響しません。

#!/ binに/ bashの
############## 
#は変数受け取るために再割り当て
#は関数にパラメータを渡すをし、割り当てを再計算
############## ## 
NUM =(2. 3. 1)割り当てアレイ#NUMの
#は、関数アレイ-defined 
アレイ(){ 
        関数newNumに定義されたローカルnewNum =($ *)#ローカル変数
        Iは、関数I位に定義されたローカルローカル変数
        ((I = 0を、I <$#;私は++)) #$# $すべてのパラメータについても同様*この行は、次の新しいインデックス値を指標として、$ I 0の開始値である<$#は受信
        行う
        製品を[$ i]を= $を[$ {newnum [$ I] } * 5]# newNumは5を乗じた値が、新しい新規に再割り当てするたびアレイ横断
        DONEが
} 
アレイ$ {NUM [@]}#関数アレイを呼び出す
$ {商品[@]エコー$ num個の配列の}#出力値


小さな拡張、関数の戻り値

#!/ binに/ bashの
### 
関数の戻り値##目的球のリターン
############ 
楽しい(){ 
        -p読む"番号を入力してください:" NUM 
        のlet $のSUM = 2 * NUMの
        # ?$値リターン
        リターン$ [2 * $ NUM] 
} 
楽しいが、
値が255を超えることはできません返す#shellは、関係なく、あなたが入力した内容番号、上記の操作の値は255以内に返品されていない
「楽しい戻り値:?$をエコー 」



おすすめ

転載: blog.51cto.com/13760226/2412958