Yash 2 その 292: トラップの実行タイミング
今更だが、コマンド入力待機中にトラップを実行するシェルとしないシェルとがあることに気付いた。
調べた限りでは、現行の yash の他に ksh と zsh はコマンドの入力の待機中でもシグナルを受信すればトラップを実行する。それ以外の bash, dash, mksh ではコマンドの入力中にシグナルを受信してもコマンドの入力が終はってからトラップを実行する。これらのシェルでは、入力されたコマンドがない場合 (つまり、入力の終端に達した場合) にはそのままシェルが終了するのでトラップは実行されない。
この点については POSIX では動作が規定されてゐないので、各シェルの裁量の範囲といふことになるのだらうか。
| 固定リンク
コメント