誤って生成されたzshコマンドを定義解除する方法は?

誤って生成されたzshコマンドを定義解除する方法は?

すべてのPythonファイルで文字列 ".vars()"を検索したいとし、どういうわけか "grep"を次のようにオーバーライドしました。

% grep .vars() *.py                                                         
% which grep
grep () {
    *.py
}

この問題を使用unset grepして修正しようとしましたが、成功しませんでした。export grep=/bin/grep私が誤ってやったことを誰か説明してもらえますか?

注:Bashでは、次のように失敗します。

「予期しない表示」( '」の近くに構文エラーがあります。

ベストアンサー1

これには2つの関数が定義されています。 1つは名前が付けられ、grepもう1つは名前が付けられますvars*.py

grep .vars() *.py                                                         

これらの機能を削除してシャドウをキャンセルするには、次の手順を実行するgrep必要があります。

$ unset -f grep .vars

からman zshbuiltins

unset [ -fmv ] name ...
        ...
        unset -f is equivalent to unfunction.
...
unfunction
        Same as unhash -f.
...
unhash
        ...
        The  -f  option causes unhash to remove shell functions.

おすすめ記事