再割り当てコマンド

再割り当てコマンド

以前は、stderrに文字列をエコーするBashスクリプトフラグメントを見つけました。

echoerr() { echo "$@" 1>&2; }
echoerr hello world

これはまだ私のクリップボードにあり(VIMを使用して)ファイルを編集しようとしたときに誤ってファイル名の代わりにこのフラグメントを再貼り付けました。

vim echoerr() { echo "$@" 1>&2; }
echoerr hello world

echoerr次のユーザーに再割り当てされたようですvim

$ where vim
vim () {
    echo "$@" 1>&2;
}
/usr/bin/vim

VIMを使用してファイルを開こうとすると、ファイル名のみがエコーされます。

vim path/to/some-file

印刷:

path/to/some-file

どうしたの?(tmux内でzshを実行しています)

ベストアンサー1

zsh複数の名前で関数を定義できるからです。からman zshmisc

function word ... [ () ] [ term ] { list }
       word ... () [ term ] { list }
       word ... () [ term ] command
              where term is one or more newline or ;.  Define a function which
              is referenced by any one of word.  Normally, only  one  word  is
              provided;  multiple  words  are  usually only useful for setting
              traps.  The body of the function is the list between the  {  and
              }.  See the section `Functions'.

おすすめ記事