challenge メソッドのフック

例えば、あるクラスのあるメソッドを実行する前に他の処理を呼びたい(例えばログやトランザクション開始など)。 また、そのメソッドの終了後にも何らかの後処理を呼びたい(トランザクション終了など)。

そのような、メソッドに対するフック処理を書いてください。 ライブラリを使用してメソッドのフックを実現した場合は ライブラリの名前を紹介してくれると助かります。

Posted feedbacks - Bash

bashやPOSIX-shでは、外部コマンドや内部コマンドよりシェル関数が優先して呼ばれます。いっぽう、commandコマンドを使うことにより、シェル関数を省いて外部コマンドや内部コマンドを呼べます。

これを組み合わせると、下のコードのようにして、外部コマンドをシェル関数でフックできます。

ただし、シェル関数はこの方法ではフックできません。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
ls() {
    # before
    echo '***** start *****'

    # command itself
    command ls "$@"
    local result=$?

    # after
    echo '***** end *****'

    return $result
}

Index

Feed

Other

Link

Pathtraq

loading...