2011-10-05 8 views
6

私はシェルスクリプトに取り組んでいます。私はいくつかのコード行を複製しています。パラメータを受け取るシェルスクリプトで関数を作成する方法は?

私はそれらの行を関数に入れたいと思っています。使用する正しい構文は何ですか?

これらの関数がパラメータを受け取るために私は何を変えるのですか?

ここでは例を示します。このような何かに

amount=1 
echo "The value is $amount" 
amount=2 
echo "The value is $amount" 

私はこれを有効にする必要があり

function display_value($amount) { 
    echo "The value is $amount" 
} 

amount=1 
display_value($amount) 
amount=2 
display_value($amount) 

これは一例であり、私はそれが十分に明確だと思います。

ありがとうございます。

答えて

11
function display_value() { 
    echo "The value is $1" 
} 

amount=1 
display_value $amount 
amount=2 
display_value $amount 
10

シェルスクリプトでは、関数は任意の量の入力パラメータを受け入れることができます。 $ 1は第1の入力パラメータを表し、$ 2は第2の入力パラメータを表します。 $#は関数が受け取ったパラメータの数を返し、$ @はすべてのパラメータを順番に返し、スペースで区切ります。例えば

#!/bin/sh 
    function a() { 
    echo $1 
    echo $2 
    echo $3 
    echo $# 
    echo [email protected] 
    } 

    a "m" "j" "k" 

m 
j 
k 
3 
m j k 
を返します。
関連する問題