trap [argument n [n2]...]
onintr [-| label]
*trap [arg sig [sig2...]]
argument が示す trap コマンドを、シェルが数値形式または 名前形式で指定されているシグナル(n) を受信した時に読み取り、実行します。(注: argument は、トラップ設定時に一度、トラップ取り出し時に一度検索されます。)トラップコマンドは、シグナル番号または 対応するシンボリック名の順序で実行されます。現在のシェルへの入力時に無視されたシグナルにトラップを 設定しようとしても無効となります。シグナル 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 |