関数呼び出しの定義とパラメータ
関数は、それらを使用することができる前に、関数を定義する必要があり、定義された機能コードは呼び出しを容易にするために、モジュラーシェルで使用することができる特定の機能の完了コード断片です。
まず、関数を定義します
この方法の一つ:
関数名(){
機能コード機能が実装されます
}
方法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以内に返品されていない 「楽しい戻り値:?$をエコー 」