« テレビ番組等感想 その 462: 2017 年第 4 四半期の纏め | トップページ | テレビ番組等感想 その 463: 2018 年第 1 四半期の纏め »

2018年2月25日 (日)

Yash 2 その 286: err-return オプション

Err-exit に代はるオプションとして err-return オプションを実装する作業をしてゐる。

その名の通り、exit の代はりに return する点以外は err-exit オプションと同じものだ。If コマンドの条件部分などのやうに err-exit オプションが無効化される状況では、その中で関数を呼んだ場合にも err-exit オプションが効かないままとなりあまり直観的でない動作となる。Err-return オプションではこのやうな時でも return する。

false && true のやうに && 演算子の左辺がエラーになった場合には err-exit オプションは効かないが、同じく err-return オプションも効かないこととする。Err-exit と err-return で妙な差がない方がよからうと判断した。左辺がエラーになった時に exit あるいは return させたければ、&& 演算子ではなくセミコロンを使へば良い。

トラップを実行中に err-exit (や err-return) が有効となるかどうかはそのトラップが if コマンドの条件部分内などで発生したものかどうかによるのが今の yash の動作だ。これだとトラップ内での err-exit や err-return の有効性が予測しにくいが、ksh や zsh もこの動作になってゐる。Err-return オプションではトラップのコマンドを一つの関数にまとめてそれを呼ぶやうにすることで err-return の効果を回復できるからこの仕様でも (err-return に関しては) 特に問題はない。

|

« テレビ番組等感想 その 462: 2017 年第 4 四半期の纏め | トップページ | テレビ番組等感想 その 463: 2018 年第 1 四半期の纏め »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: Yash 2 その 286: err-return オプション:

« テレビ番組等感想 その 462: 2017 年第 4 四半期の纏め | トップページ | テレビ番組等感想 その 463: 2018 年第 1 四半期の纏め »