argument が示す trap コマンドを、シェルが数値形式または 名前形式で指定されているシグナル(n) を受信した時に読み取り、実行します。なお argument は、トラップ設定時とトラップ取り出し時に 1 度ずつ検索されます。 トラップコマンドは、シグナル番号または 対応するシグナル名の順序で実行されます。 現在のシェルへの入力時に無視されたシグナルにトラップを 設定しようとしても無効となります。 シグナル 11(メモリフォルト) にトラップを指定しようとすると、 エラーになります。 argument を省略すると、 n のトラップはすべてその元の値に再設定されます。 argument が NULL 文字列の場合、 シェルおよびシェルが呼び出すコマンドは、 このシグナルを無視します。 n が 0 の場合、 argument が示すコマンドはシェル終了時に実行されます。 引数なしの trap コマンドは、コマンドの一覧を 各々が対応しているシグナル番号とともに表示します。
onintr は割り込み時のシェルの動作を制御します。 引数を指定しないと、onintr は割り込み時にはデフォルトの動作を実行します (シェルはシェルスクリプトを終了して、 端末のコマンド入力レベルに戻ります)。– 引数を指定すると、シェルはすべての割り込みを無視します。label 引数を指定すると、割り込みを受信するか 割り込みのために子プロセスが終了したときに、シェルは goto label を実行します。
trap は arg を sig が示すシグナルをシェルが受信したときに読み取られ、 実行されるコマンドとして使用します。 なお arg は、 トラップ設定時と トラップ取り出し時に 1 度ずつ検索されます。各 sig は、 数値またはシグナルの名前です。trap コマンドは、 シグナル番号の順序で実行されます。 現在のシェルで無視されているシグナルにトラップを 設定しようとしても無効となります。arg を省略するか、 または – と指定する場合、各 sig 用のトラップはすべてその元の値に再設定されます。arg が NULL 文字列("" などの空の文字列)の場合、 シェルおよびシェルが呼び出すコマンドは、 このシグナルを無視します。 sig が ERR の場合、 コマンドが 0 以外の終了状態で終わると必ず arg が実行されます。sig が DEBUG の場合、 各コマンドの後に arg が実行されます。 sig が 0 または EXIT で、 トラップが関数の外側で設定されている場合、 シェルの終了時に arg が示すコマンドが実行されます。 引数なしの trap コマンドは、 コマンドの一覧を 各々が対応しているシグナル番号とともに表示します。
1 つまたは 2 つのアスタリスク(*)が先頭に付加されている ksh(1) コマンドは、 以下のような特殊な処理を受けます。
コマンドが完了しても、 コマンドの直前の 変数代入リストは依然として有効です。
入出力のリダイレクトは変数代入後に行われます。
エラーが発生すると、 それを含むスクリプトは中止されます。
変数代入形式で、 ** から始まるコマンドに続くワードは、 変数代入と同一の規則で展開されます。つまり、 チルド置換は = 符号の後に実行され、ワード分割とファイル名生成は実行されません。
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
---|---|
使用条件 | SUNWcsu |