3
関数が終了したときにbashがいくつかのコマンドを呼び出す可能性はありますか?私のようなものを意味する:関数の終了時のバッシュトラップ
function foo
{
# something like this maybe?
trap "echo \"exit function foo\"" EXIT
# do something
}
foo
を、私はexit関数fooがプリントアウトされたいです。
また、この関数の戻りコードもトラップできますか? – bercik
いいえ。関数の今後のリターンコードに基づいて異なるアクションを実行する場合は、 'if'や' case'のような条件を使う必要があります。また、 'trap'はハンドラをグローバルに設定するので、' foo'の本体が '{{} 'であれば、' foo'が呼び出される前に存在していた 'RETURN' ..} 'command;' foo()(trap ...;) 'は呼び出しコンテキストに影響を与えません)。 – chepner
これは、 'RETURN'のトラップに加えて、ゼロ以外の戻り値があれば' ERR'を発生させることができます。 1のリターンコードと2のリターンコードに対して異なるトラップを設定することはできません。 – chepner