アプリケーションの[シェル]機能

定義フォーマットシェル関数は、次のとおりです。

[ 機能] funname [()] 

{ 

    作用; 

    【リターンINT ;] 

}
 

説明:

  • 図1は、楽しいと缶機能()が定義され、パラメータなしで()が定義され、直接楽しみであってもよいです。
  • 2、リターン・パラメータが追加を表示することができます:リターンが返されない場合は、戻り値として、そのコマンドの結果を持続します。N個の戻り値(0〜255が続きます

例えば:

関数パラメータなし:

demoFunc(){#定義関数
         エコー これは、シェルの第一機能である
} 

エコー -------機能開始------ 
機能#1のdemoFunc実行
エコー -------機能が完了------ 

結果の実装:

$ SH testFunc。SH  
------- ------機能が起動し
、これは最初の1シェル機能である
 ------- ------機能が完了

得られる$?を通して関数を呼び出した後、関数の戻り値。

注:すべての機能は、使用する前に定義する必要があります。機能は、それが最初に発見された際に通訳シェルまで、スクリプトの先頭に配置する必要があることをこの意味では、それを使用することができます。唯一その関数名を使用して関数を呼び出します。

複数の戻り値を持つ関数:

試験(){
 エコー 100の#戻り100
 エコー 200 #リターン200である
} 

A = $(テスト)
 エコー $ A

結果の実装:

SH testfunc。SH  
100  200

 パラメータを持つ関数: 

funWithParam(){
     エコー " 最初のパラメータ。1 $!" 
    エコー " 2番目のパラメータは2 $である!" 
} 

funWithParam 。1  2

結果の実装:

SH testFunc。SH 
最初のパラメータは、ある1
2番目の引数が2

第十{10} $必要なパラメータを取得し、$ 10 10のパラメータを得ることができないことに留意されたいです。場合N> = 10、パラメータを取得するために$ {N}の使用を必要とします。

また、特殊文字を処理するためのいくつかのパラメータがあります。

パラメータ処理 説明
$# 引数の数は、スクリプトまたは関数に渡されました
$ * 以一个单字符串显示所有向脚本传递的参数
$$ 脚本运行的当前进程ID号
$! 后台运行的最后一个进程的ID号
$@ 与$*相同,但是使用时加引号,并在引号中返回每个参数。
$- 显示Shell使用的当前选项,与set命令功能相同。
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

 

参考文档:

Shell 函数

Shell函数返回多个值

おすすめ

転載: www.cnblogs.com/kaerxifa/p/12187897.html