Bash 機能パッチ

Bash 機能パッチ

シェル関数(deactivate()Python virtualenvで定義された関数)があり、実行前後にいくつかのステートメントを挿入してパッチを適用したいと思います。私の目標は、deactivate()既存の関数の機能を実行し、はるかに多くの作業を実行する新しい関数を作成することです。これを行う方法はありますか?

元の関数はさまざまな場所(個々のvirtualenv)で動的に定義されているため、すべてのソースでそれらを変更することは魅力的なオプションではありません。

ベストアンサー1

十分であれば、関数より優先順位の高い無効化エイリアスを生成できます。以前はコマンドを実行できますが、後で実行するのは簡単ではないからです。

alias deactivate='before; deactivate'

あるいは、単純に(より良い)より単純な名前で関数を作成します。

deact(){ [[ $somevar == true ]] && deactivate
         [[ $othervar == admin ]] && sudo deactivate
       }

または実装したいものは何でも。はい、定義されている場合にのみ実行されます。これは用語に代わるものではなく、deactivate他のユーザーには使用できません。

唯一の方法は、名前がdeactivateエイリアスまたは関数よりも優先順位の低い実行可能プログラムを作成することです。どちらも定義しないでください。

おすすめ記事