詳細はshell関数の定義と呼び出しです。


一、Shell関数定義フォーマット
shell関数定義フォーマットについて、各部分は以下のように説明しています。
[function]などの中かっこで囲まれた部分----オプションを表します。
your_function_nameパート----関数名
your_shell_commundsの部分----関数コードです。shellは普通は行為単位ですが、「\」を使って改行してもいいし、一方の行に「;」を使ってもいいです。区切り記号として
return int部分----shell関数は戻り値がありますが、整数のみを返します。文字列は戻りません。

[ function ] your_function_name()
{
  your_shell_commands;
  [return int;]
}
二、基本関数の定義と呼び出し
このセクションでは、関数の定義と呼び出しは、括弧(testFun(のような)を使わないように注意してください。コードは以下の通りです。

testFun{
  echo "helloworld!"
}

testFun
以下のように実行します

三、伝達パラメータの呼び出し
3.1伝達パラメータにはスペースがない
このプログラムは、呼び出し関数にパラメータを渡すために実行されます。0は、スクリプトを実行するshell伝達のパラメータです。$1から始まり、複数のパラメータを伝えるのは、スペースで区切られています。コードは以下の通りです。

testFun(){
  echo $1
}

param="helloworld!"
testFun $param
以下のように実行します

n形式でn番目のパラメータが取得できるほか、以下のような書き方ができます。
フォーム
説明
$シシシ
スクリプトに渡すパラメータの個数
$
スクリプトに渡すすべてのパラメータを一文字列で表示します。
$
スクリプトが実行している現在のプロセスID番号
ドルです。
バックグラウンドで実行される最後のプロセスのID番号
ドル@
は同じですが、引用符を付けて引用符に各パラメータを返します。
を選択します。
Shellで使用している現在のオプションが表示されます。setコマンド機能と同じです。
$
最後のコマンドの終了状態を表示します。0は間違いがないことを表しています。他のどの値も間違いがあることを示しています。
3.2伝達パラメータにはスペースがあります。
このプログラムは、呼び出し関数にスペースのあるパラメータを伝達することを実現しました。前節「ハロルド!」スペースを入れて「ハローワールド!」以下のとおりです

testFun(){
  echo $1
}

param="hello world!"
testFun $param
以下のように実行します

スペースだけ前の「ハロー」がプリントされていて、スペースの後の「world!」印刷されていませんでした。実際にスペースの後の「world!」$2と認識されました
スペースがあるパラメータを渡すのも簡単です。伝達時にダブルクォーテーションマークをつければいいです。コードは以下の通りです。

testFun(){
  echo $1
}

param="hello world!"
testFun "$param"
以下のように実行します

四、戻り値を取得する
4.1整数に戻る

testFun(){
  echo "helloworld!"
  return 99
}


#      shell              ,      $? ,               
#             ,      echo     
# return_value=`testFun`
#           return           
testFun
echo "the return value is: $?"
4.2文字列を返します
前ではshell関数は型を整えても文字列に戻らないと言われていますが、強制的に文字列を返してみます。コードは下記の通りです。

testFun(){
  echo "helloworld!"
  return "success"
}

testFun
運転は次のようにしています。運転を再開したところでエラーが表示されます。「-bash:return:success:numeric argment required」

だから、returnを通して文字列を返すのは無理です。2つの変換方法があります。最初は関数のすべての印刷を取得する方法です。コードは以下の通りです。

testFun(){
  echo "helloworld!"
  echo "success"
}

return_value=$(testFun)
echo "$return_value"
以下のように実行します

「success」の取得に成功したと見られます。しかし、このようなやり方で得られたコールされた関数のすべての出力を見てもいいです。戻り値は単独で解析してください。
もう一つの方法は直接変数を使うことです。shellの変数はすべて大域的な変数です。コールされた関数に割り当てられた変数はコール関数でも取得できます。コードは以下の通りです。

testFun(){
  echo "helloworld!"
  return_value="success"
}

testFun
echo $return_value
以下のように実行します

参考:
http://edu.jb51.net/linux/linux-shell-passing-arguments.html
以上はshell関数の定義と呼び出しの詳細です。Shell関数の定義と呼び出しの資料については他の関連記事に注目してください。