exit, return, goto - シェルの連続した処理を分岐して実行するためのシェル組み込み関数
exit [n]
return [n]
exit [( expr )]
goto label
*exit [n]
*return [n]
+exit [n]
+return [n]
exit はシェルまたはシェルスクリプトを n で指定した終了ステータスで終了させます。n を省略すると、最後に実行されたコマンドの終了ステータスがシェルの終了ステータスになります (EOF によっても、シェルは終了します)。
return は関数を、n が示す戻り値で終了させます。n を省略すると、リターンステータスは最後に実行された コマンドのリターンステータスになります。
exit はシェルまたはシェルスクリプトを終了させ、ステータス変数の値または式 expr で指定された値が返されます。
goto 組み込み関数は label をコマンド中で検索の引数として指定します。シェルは可能なかぎり入力をさかのぼり、 label: という形式の行を探します。 label: の前にはスペース文字またはタブ文字がある可能性もあります。指定された行の次から実行が再開します。while または for 組み込みコマンドと、対応する end との間にあるラベルへジャンプするとエラーになります。
exit はシェルまたはシェルスクリプトを n で指定した終了ステータスで終了させます。具体的には、指定した値の最下位 8 ビットが終了ステータスの値となります。n を省略すると、最後に実行されたコマンドの終了ステータスがシェルの終了ステータスになります。トラップ実行中に exit が発生した場合、ここで言う最後に実行されたコマンドとは、トラップ呼び出し直前に実行されたコマンドを指します。なお、ignoreeof オプション (後述の set を参照) が有効になっているシェルを除き、ファイルの終わりを検出した場合もシェルが終了します。
return はシェル関数または '.' スクリプトを、n で指定された戻りステータスで呼び出し側スクリプトに戻します。具体的には、指定した値の最下位 8 ビットが終了ステータスの値となります。n を省略すると、戻りステータスは最後に実行された コマンドの戻りステータスになります。return を関数や '.' スクリプト実行中以外で起動すると、結果は exit と同一になります。
このマニュアルページでは、1 つまたは 2 つの * (アスタリスク) が先頭に付加されている ksh88(1) コマンドは、次のような特殊な扱いを受けます。
コマンドが完了しても、コマンドの直前の変数代入リストは依然として有効です。
入出力のリダイレクトは変数代入後に行われます。
エラーが発生すると、それを含むスクリプトは中止されます。
変数代入形式で、** を先頭に持つコマンドに続くワードは、変数代入と同一の規則で展開されます。つまり、チルド置換は = 符号のあとに実行され、ワード分割とファイル名生成は実行されません。
exit は、シェルの特殊組み込みコマンドであり、exit を呼び出したシェルを終了させます。EXIT トラップが設定されている場合は、シェルが終了する前に、そのトラップが呼び出されます。
n が指定されている場合、終了ステータスを設定するために使用されます。
return は、シェルの特殊組み込みコマンドであり、return を呼び出した関数またはドットスクリプトを終了させます。return を関数またはドットスクリプトの外部で呼び出した場合、return は exit と同等になります。
return を、function 予約語構文を使用して定義されている関数の内部で呼び出した場合、関数が戻る前に、呼び出し側のコンテキストで、関数内に設定されているすべての EXIT トラップが呼び出されます。
n が指定されている場合、終了ステータスを設定するために使用されます。
このマニュアルページでは、1 つまたは 2 つの + 記号が先頭に付加されている ksh コマンドは特殊組み込みコマンドであり、次のような特殊な処理を受けます。
コマンドが完了しても、コマンドの直前の変数代入リストは依然として有効です。
入出力のリダイレクトは変数代入後に行われます。
エラーが発生すると、それを含むスクリプトは中止されます。
これらは有効な関数名ではありません。
変数代入形式で、++ から始まるコマンドに続くワードは、変数代入と同一の規則で展開されます。つまり、チルド置換は = 符号のあとに実行され、フィールド分割とファイル名生成は実行されません。
exit で n が指定されている場合、終了ステータスは n の値の最下位 8 ビットとなります。それ以外の場合、終了ステータスは、前のコマンドの終了ステータスとなります。トラップの内部で呼び出された場合、前のコマンドとは、トラップを呼び出したコマンドを意味します。
return で n が指定されている場合、終了ステータスは n の値の最下位 8 ビットとなります。それ以外の場合、終了ステータスは、前のコマンドの終了ステータスとなります。
属性についての詳細は、マニュアルページの attributes(7) を参照してください。
|